본문 바로가기

JAVA/DAY 13 _ 23.09.04

static 2

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' 카테고리의 다른 글

싱글톤 패턴  (0) 2023.09.04
final  (0) 2023.09.04
method 오버로딩 & static변수  (0) 2023.09.04
Star UML  (0) 2023.09.04
Class Review  (0) 2023.09.04