Min's dev-log
[JAVA] 클래스 변수 본문
인스턴스 변수
객체 변수, 멤버 변수
객체끼리 값을 고유하지 않는다. 객체마다 고유한 값을 가진다.
클래스 변수
정적변수, static
공유자원 => 이 변수의 주인은 클래스이다. => 객체끼리 값이 공유된다.
▼ 공유자원
class A{
int memA;
static int memB; // static이 붙어서 클래스변수
// static 클래스변수는 객체끼리 값을 공유한다.
// "객체와 무관하게" => 너가 무슨객체든간에 상관안한다. 주인이 클래스여서
// 어떤 객체가 건드려도 전체적용이 된다.
void info() {
System.out.print(this.memA); // this.멤버변수
System.out.println(" "+A.memB); // 확인하는 오류
System.out.println();
}
}
public class Test01 {
public static void main(String[] args) {
A a1=new A();
A a2=new A();
a1.memA+=10;
a1.memB+=20; // A.memB+=20;
// 객체로 접근해도 결과는 똑같다
// a1만 한건데 a2도 값이 변했다
// static 클래스변수는 객체끼리 값을 공유한다.
// 주인이 클래스이고 그 클래스로 객체 a1,a2를 만들었기때문에
// 클래스변수인 memB를 a1에서 값을 넣든 a2에서 넣든 두 객체에
// 모두 적용된다.
a1.info();
a2.info();
}
}
'JAVA' 카테고리의 다른 글
[JAVA] 상속 (0) | 2023.05.04 |
---|---|
[JAVA] 객체 배열 (0) | 2023.05.03 |
[JAVA] 생성자 (0) | 2023.05.02 |
[JAVA] 클래스와 객체 (0) | 2023.05.01 |
[JAVA] 객체 지향 언어 (0) | 2023.05.01 |
Comments