package mymain;


/*

       ◆ static  클래스 변수 정리


  static : 프로그램 시작시 생성된다.

  1. static 변수 : 클래스내의 객체간 공유변수

  2. static : 메서드 : 객체 생성없이 사용가능 (Ex: Math.abs())

  3. static class         : inner class(내부클래스)에서 사용

  4. static 초기화         :  

 */



/*

  변수

  1. 인스턴스 변수 : 클래스내에 선언된 변수 (객체가 생성되면)

        2. 클래스 변수(static 변수) : 선언되는 시점이 인스턴스 변수와 다르다.

        프로그램 시작시 생성

        3. 객체 생성없이 사용가능 (예: Math.abs());

        4. 클래스 변수는 inner class(내부클래스)에서 사용된다.

 */


class ExStatic{

/*

  인스턴스 변수는 객체를 생성하고 나서 사용할 수 있지만

  클래스 변수는 객체 생성 없이 사용이 가능하다.

  이미 프로그램 시작시 클래스 변수는 생성되어 있기 때문이다.

*/


// 인스턴스 변수

int a;

// 클래스 변수

// static이라도 접근제한자의 영향을 받는다.

// 즉, private static int static_a; 라고 접근제한자를 사용하면

// 외부에서 사용이 불가능하다.

static int static_a; 

}


public class MyMain {

// static 초기화

// 가장먼저 실행된다.

// main 보다 먼저 실행된다.

static

{

System.out.println("(순서1) 내가 먼저 실행 돼");

System.out.println("(순서2) JDBC 라이브러리를 여기서 초기화 ");

}

public static void main(String[] args) {

// 클래스 변수라 객체 생성 없이 사용가능

ExStatic.static_a = 10;

System.out.println("(순서3)" + ExStatic.static_a);

}


}



+ Recent posts