728x90
Class에서 그동안 만들었던 멤버변수들은 Heap 메모리에 저장되었다.
지금 얘기할 전역변수는 Heap영역이 아닌 데이터 영역에 저장된다.
public class StaticVar {
// Static(전역) 변수 => 공유
static int count = 1;
// 멤버 변수 => 자기 자신만의 데이터
int data = 0;
void print() {
System.out.println("count :"+count);
System.out.println("data :"+data);
}
}
전역 변수의 값을 저장하는 방법.
똑같이 '=' 기호를 쓰지만 아래 코드와 같이 클래스 이름을 쓰고 억세스한다.
StaticVar.count = 3;
코드:
public class StaticMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
StaticVar sv1 = new StaticVar();
sv1.print();
StaticVar sv2 = new StaticVar();
sv2.print();
// Static(전역) 변수는
// 클래스 이름을 쓰고 억세스 한다.
StaticVar.count = 3;
sv1.print();
sv2.print();
sv1.data = 10;
sv2.data = 500;
StaticVar.count=33;
sv1.print();
sv2.print();
}
}
실행 결과
'Java' 카테고리의 다른 글
Java - 생성자(Constructor) , 생성자 오버로딩 (0) | 2023.01.19 |
---|---|
Java - 메소드 오버로딩 (Method Overloading) (0) | 2023.01.18 |
Java - 클래스 (객체, 인스턴스 변수(=멤버 변수), 메소드) (0) | 2023.01.18 |
Java - 함수의 정의 ( 데이터타입, 함수명, 파라미터 ) (0) | 2023.01.18 |
Java - 배열 (선언과 생성, 사용 방법,데이터 억세스,배열의 길이 구하는 방법 length) (0) | 2023.01.18 |