본문 바로가기

JAVA/DAY 13 _ 23.09.04

Static2

public class P4_static2_Again {

	public static void main(String[] args) {
		
		
		new Q1().test1();					// 안녕하세요 : 0
		
		AAAA a = new AAAA();
		a.v1 = 20;						// 인스턴스 변수 선언
		
		// a.v2 = 30;						--> 이렇게 안하기로 했지?
				
		AAAA.v2 = 30;						// 메서드 변수 선언
		
		new Q1().test1();					// 안녕하세요 : 30
		
		System.out.println(AAAA.v2);		// 50
		
		new Q1().test1();					// 안녕하세요 : 50
		

	}

}
class AAAA{
	
	int v1;					
	static int v2;			
	int v3;
	

	void test1() {
		System.out.println("안녕");
	}
	
	
	static void test1(int a) {
		System.out.println("반가워");	
	}
	
	
}

 

class Q1{
	
	void test1() {
		test2();	// test1을 호출하면 test2가 호출되고, 그 test2는 또 test3을 호출 할거임	
	}
	
	
	void test2() {
		test3();
	}
	
	
	void test3() {
	System.out.println("안녕하세요 : " + AAAA.v2);
	AAAA.v2 = 50;		// main의 v2도 50으로 변경됨!! (글로벌한 친구니까)
	// --> 첫 호출때는 실행만되니까 syso 출력되고, v2값이 변경됨 --> 후에 다시 호출하면 변경된 값으로 보여준다!
	
	// System.out.println("지금 변경되나?" + AAAA.v2);	 --> 지금 변경되나?50
	// ---> 이런식으로하면 변경되고나서 출력바로 되는걸 알수있음주석 지우기 전후로 흐름 다시보기 ★★★★
		
	}
	
	
}

'JAVA > DAY 13 _ 23.09.04' 카테고리의 다른 글

Single Tone Pattern  (0) 2023.09.11
Final  (0) 2023.09.11
Static  (0) 2023.09.11
Star UML  (0) 2023.09.11
Class review  (0) 2023.09.11