NULL
JAVA static변수, 클래스 변수 본문
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변수는 생성자없이 호출이 가능하다.
'Back-end > JAVA' 카테고리의 다른 글
JAVA 생성자 (0) | 2022.01.23 |
---|---|
JAVA 열거형(enum) (0) | 2022.01.23 |
JAVA 클래스, 인스턴스, 객체, 메소드, 객체모델링 개념정리 (0) | 2022.01.22 |
JAVA String클래스의 메소드, 불변 클래스 (0) | 2022.01.21 |
JAVA 기본형, 참조형 타입차이 (0) | 2022.01.21 |
Comments