NULL

JAVA static변수, 클래스 변수 본문

Back-end/JAVA

JAVA static변수, 클래스 변수

1924 2022. 1. 23. 01:55
public class VariableScopeExam {
    int globalScope = 10;          // 인스턴스 변수
    static int staticVal = 7;      // 클래스 변수

    public void scopeTest(int value) {
        int localScope = 20;        //지역변수
    }

    public static void main(String[] args) {
        System.out.println(staticVal);     // 클래스 변수는 인스턴스화 하지 않고도 사용가능 
        System.out.println(globalScope);   // 오류
    }
}

 

키워드 static을 사용하면 인스턴스화 하지 않아도 static을 사용할 수 있다.

 

 

ValableScopeExam v1 = new ValableScopeExam();
ValableScopeExam v2 = new ValableScopeExam();

v1.staticVal = 10;
v2.staticVal = 20; 

// static은 값을 공유하므로 두 코드 모두 20을 출력
System.out.println(v1.statVal);
System.out.println(v2.statVal);

 

클래스 변수

클래스 변수는 인스턴스 변수에 static만 붙여주면 됩니다.

인스턴스 변수는 각각 고유한 값을 가지지만 클래스 변수는 모든 인스턴스가 공통된 값을 공유하게 됩니다.

 

한 클래스의 모든 인스턴스들이 공통적인 값을 가져야할 때 클래스 변수로 선언합니다.

클래스가 로딩될 때 생성되어(그러므로 메모리에 딱 한번만 올라갑니다.)

종료 될 때 까지 유지되는 클래스 변수는 public 을 붙이면 같은 프로그램 내에서

어디서든 접근할 수 있는 전역 변수가 됩니다.

 

또한 인스턴스 변수의 접근법과 다르게 인스턴스를 생성하지 않고

클래스이름.클래스변수명 을 통해서 접근할 수 있습니다.

클래스 이름을 직접 사용하는 것이 가능

클래스이름.클래스변수명

 

클래스안의  static변수는 생성자없이 호출이 가능하다.

 

 

 

 

 

 

 

Comments