class Static{
public int a = 20;
static int b = 0;
}
public class Test{
public static void main(String[] args) {
int a = 10;
Static.b = a;
Static st = new Static();
System.out.println(Static.b++);
System.out.println(st.b);
System.out.println(a);
System.out.print(st.a);
}
}
키워드: static 변수, 후위연산자
static 변수는 static메모리에 별도 저장되기 때문에 일반적인 인스턴스 변수와는 다르게 프로그램 내 모든 객체와 공유된다.
후위연산자는 리턴 후 연산을 한다.
10
11
10
20
Static.b++의 경우 후위연산자 이기 때문에 리턴 후 연산. 따라서 값은 10
Static클래스의 객체 st를 통해 b값을 출력하는 st.b는 st가 선언되었을때의 Static.b와는 상관없이 바로 위 Static.b++ 연산까지 적용된 11이 출력된다.
반응형
'개발 > Certification' 카테고리의 다른 글
[AJAX] AJAX의 의미 (0) | 2024.01.16 |
---|