Member Variable 멤버(전역)변수 (instance)
ㄴ 선언 위치 : 클래스
ㄴ heap 메모리에 생성 (개별 공간)
Static Variable 정적 멤버(전역)변수
ㄴ 선언 위치 : 클래스
ㄴ static 메모리에 생성 (공용 공간)
. 선언
변수 선언 시, 자료형 앞에 static을 붙임
*클래스 영역에서 선언하는 변수는 자동으로 값이 초기화 된다.
ㄴ 프로그램이 종료될 때, 해제
package test;
class myClass{
static int x;
int y;
}
public class Ex06 {
public static void main(String[] args) {
myClass.x = 10;
myClass mc = new myClass();
System.out.println(mc.x); // 10
System.out.println(mc.y); // 0
}
}
package test;
class Monster{
int lv;
String name;
}
public class Ex07 {
public static void main(String[] args) {
Monster mon1 = new Monster();
mon1.lv += 1;
mon1.lv += 1;
Monster mon2 = new Monster();
mon2.lv += 1;
mon2.lv += 1;
mon2.lv += 1;
Monster mon3 = new Monster();
mon3.lv += 1;
mon3.lv += 1;
System.out.println(mon1.lv); // 2
System.out.println(mon2.lv); // 3
System.out.println(mon3.lv); // 2
}
}
package test;
class Monster{
static int lv;
String name;
}
public class Ex07 {
public static void main(String[] args) {
Monster mon = new Monster();
mon.name = "Mon";
Monster.lv += 1;
Monster.lv += 1;
Monster.lv += 1;
mon.lv += 1;
mon.lv += 1;
mon.lv += 1;
mon.lv += 1;
System.out.println(Monster.lv); // 7
}
}
'Java > ☞' 카테고리의 다른 글
[25] 은닉성 - get set 메서드 (0) | 2020.09.18 |
---|---|
[24] 메서드와 생성자 (0) | 2020.09.17 |
[22] 메서드 오버로딩 (0) | 2020.09.17 |
[21] 메서드 (0) | 2020.09.17 |
[20] 클래스 기본 (0) | 2020.09.17 |
댓글