static : 정적 <> 동적(dynamic)
stack heap static system
o
public class MainClass {
public static void main(String[] args) {
// MyClass cls = new MyClass();
// cls.number = 123;
// cls.method();
// MyClass.static_number = 111; //객체를 생성하지 않아도 변수를 생설할 수 있는 것이 static 변수
//멤버변수, static 넘버는 따로 초기화하지 않아도 0이다.
/* MyClass cls = new MyClass();
System.out.println("number = " + cls.number);
System.out.println("static_number = " + MyClass.static_number);*/
MyClass cls = new MyClass();
System.out.println(cls.number);
cls.number++;
System.out.println(cls.number);
// cls 안에 있는 객체의 수가 변화한다고 해서 다른 객체에 있는 값이 변하지는 않는다.
System.out.println(MyClass.static_number);
MyClass.static_number++;
MyClass my = new MyClass();
System.out.println(my.number);
System.out.println(MyClass.static_number);
MyClass.static_method();
int number;
// System.out.println(number); // 초기화 되지 않아 에러가 남.
}
}
// 변수하고 함수에만 적용되는 것이 static
class MyClass{
int number;
static int static_number; // 의리파. 처음과 끝을 같이 감.
public void method(){
}
public void setStatic_method(){
}
public static void static_method() {
System.out.println("MyClass static_method()");
}
}