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 |