wasup

java 지역변수(블록'안'과 '밖') 본문

IT/Java

java 지역변수(블록'안'과 '밖')

wasupup 2020. 11. 19. 14:47
반응형

 

package testPackage;

public class LocalVar {
	int memVar; //memVar = 맴버변수 = 전역변수
	
	void localTest() { //메서드
		int a = 10, c; //지역변수
		{
			int b = 20; //지역변수
			System.out.println("블록 안");
			System.out.println("a = " + a + ", b = " + b);
		}
		//System.out.println("a = "+ a +", b = "+b);//에러발생, b는 위 블록 안에서만 사용
		
		int b = 30; //지역변수
		System.out.println("블록 밖");
		System.out.println("a = "+a+", b = "+b);
		//System.out.println("a = "+a+", b = "+b+", c = "+c); //c를 초기화하지 않았기때문에 garbage collection들어감.
		//memBar->숫자형 맴버변수는 0으로 자동초기화.
		System.out.println("값 할당 전의 memVar = "+memVar);
		memVar = 100;
		System.out.println("값 할당 후의 memVar = "+memVar);
	}
	void printVar() { //메서드
		System.out.println("memVar ="+memVar);
		//System.out.println("a = "+a+", b = "+b);//에러발생
	}
}
package testPackage;

public class LocalVarMain {

	public static void main(String[] args) {
		LocalVar lv = new LocalVar(); //lv = 객체
		lv.localTest();
		//System.out.println("a ="+a+", b = "+b);//에러발생, 지역이 다름.
		lv.printVar(); //100
		lv.memVar = 500;
		lv.printVar(); //500
	}

}

//출력결과

블록 안
a = 10, b = 20
블록 밖
a = 10, b = 30
값 할당 전의 memVar = 0
값 할당 후의 memVar = 100
memVar =100
memVar =500

반응형

'IT > Java' 카테고리의 다른 글

java static memory(정적메모리)2  (0) 2020.11.21
java static memory(정적메모리)  (0) 2020.11.20
java 재귀  (0) 2020.11.18
java max, sum, avg구하기  (0) 2020.11.17
java 메서드(클래스 안에 정의된 함수)의 종료  (0) 2020.11.16
Comments