본문 바로가기
Java/☞

[23] member 전역변수와 Static & Instance

by TR. 2020. 9. 17.

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

댓글