static 변수(즉 정적변수)란  

- Class 당 하나만 생성되는 변수, 객체(인스턴스)를 아무리 많이 만들더라도 변수는 하나만 존재 

- 객체가 생성될 때마다 새롭게 생성되는 멤버 변수와는 달리 초기에 한번만 생성되고 공유하여 사용가능 

 

static 변수 생성 시기 : Class 이름이 언급되어 질때 생성 (new 뿐만 아니라 Class 명만 나와도 생성됨)

static 변수 사용 방법 : 클래스명.변수명 OR 객체.변수명모두 가능 

   예) 1. StaticSample aa = new StaticSample();  

            System.out.println(aa.sTotal) 

         2. System.out.println(StaticSample.sTotal);

static 변수 초기화 방법 

    1) static 변수 는 초기 생성시 초기화 

        public static int sTotal=0;

    2)  static 변수 는 초기 생성시 초기화. 최초 1회만 호출됨. 

        public static int sTotal=0; 

        public int nTotal=0; 

        static { 

            sTotal += 10; 

            //nTotal += 10; //Static initializer 사용시 사용할 수 없다는 메시지 발생 

        } 

    3) 참고 static initializer 에서 staic 을 빼면 생성자와 같은 역할을 함. 즉 객체 생성시 마다 호출됨. 

        public static int sTotal=0; 

        public int nTotal=0;  

        {                 

            sTotal += 10; 

            nTotal += 10; //Static initializer 사용시 사용할 수 없다는 메시지 발생 

        }


static method / function (정적 함수)

    1) 함수 앞에 static 을 붙이면 정적함수가 됨.

       -> 즉 Instance 생성 없이 그 함수를 직접 호출할 수 있음.

    예) public static void main (String[] args) {}

       -> main 함수도 최초 호출되기 위해서는 static 으로 선언되어 있어야 함.

블로그 이미지

왕왕왕왕

,