JAVA 프로그래밍

[JAVA] 풀스택 개발자 부트캠프 012일차 ③ static

selfdailycoding 2025. 1. 10. 13:07

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()");
    }

}