public class StaticMain {
public static void main(String[] args) {
int a = StaticTest.a;
StaticTest.method2();
//Static을 선언하지 않은 것은 이렇게 불러와야 함 위 코드보다 불편.
//Static을 남발하면 안되는 이유: 누군가가 건드렸을때 값이 변하기때문에 고정된 값 쓰기 힘듦
StaticTest st = new StaticTest();
int b = st.b;
st.method1();
}
}
public class StaticTest {
static int a = 10;
int b = 10;
public static void main(String[] args) {
StaticTest s1 =new StaticTest();
System.out.println("static int a\t"+a);
System.out.println(" int b\t"+s1.b);
a = 20;
s1.b = 15;
System.out.println("변경 후 값");
System.out.println("static int a\t"+a);
System.out.println(" int b\t"+s1.b);
StaticTest s2 =new StaticTest();
System.out.println("static int a\t"+a);
System.out.println(" int b\t"+s2.b);
StaticTest s3 =new StaticTest();
System.out.println("static int a\t"+a);
System.out.println(" int b\t"+s3.b);
StaticTest st = new StaticTest();
st.b = 20;
st.method1();
//static = 메모리 부분에 이미 호출할 수 있도록 올라가있어서 바로 부를수 있다.
method2();
StaticTest st2 = new StaticTest();
st2.method1();
}
public void method1() {
System.out.println("public void method1() 호출");
System.out.println("static int a\t"+a);
// 객체가 만들어졌을때의 b 값
System.out.println(" int b\t"+b);
}
public static void method2() {
System.out.println("public static void method2() 호출");
System.out.println("static int a\t"+a);
}
}
'초급과정 > java' 카테고리의 다른 글
[Java] MapExample (1) | 2023.10.25 |
---|---|
[Java] 프로그래머스 문제풀이 LV.0) 문자열뒤집기 (0) | 2023.10.23 |
[Java] 11일차. 싱글톤(Singleton) (0) | 2023.10.19 |
[Java] while문 정수 입력받기 , 윤년 평년 구하기 (0) | 2023.10.19 |
[Java] 버블정렬 (0) | 2023.10.19 |