본문 바로가기

Study

[JAVA/자바] 전역 변수 / 지역 변수 / 접근제한자 / 상수필드

 

전역 변수

클래스 영역에 바로 선언한 변수

클래스 내에서면 어디서든 전역으로 사용 가능

 

> 멤버 변수 ( == 필드, 인스턴스 변수)

생성 시점 : new 연산자를 통해서 객체 생성 시 메모리의 heap 영역에 할당

소멸 시점 : 객체 소멸 시 같이 소멸

 

> 클래스 변수 ( == static 변수)

생성 시점 : 해당 객체가 생성되지 않더라도, 프로그램 실행과 동시에 메모리의 static 영역에 할당

소멸 시점 : 프로그램 종료 시 소멸

 

 

지역 변수

클래스 영역 내 특정한 구역에 선언한 변수

선언된 해당 지역에서만 사용 가능

* 특정한 구역 : 메소드, 제어문 등등

 

생성 시점 : 지역 변수가 속해있는 특정한 구역 실행(호출) 시 메모리의 stack 영역에 할당

소멸 시점 : 특정한 구역 종료 시 소멸

 

 

 

접근제한자

필드에 접근할 수 있는 범위를 제한하는 것

 

public 어디서든 (같은 패키지, 다른 패키지 상관없이) 접근 가능
protected 같은 패키지 접근 가능
다른 패키지일 경우 상속구조에서만 접근 가능
default 오로지 같은 패키지에서만 접근 가능 
private only 해당 클래스 파일에서만 접근 가능

* 위에서 아래로 내려갈수록 접근할 수 있는 범위가 좁아짐

* public > protected > default > private

 

 

 

상수필드 (static final)

프로그램 시작 시 값이 저장되며 값 절대 변경 불가하다

 

[표현법]

public static final 자료형 상수필드명 = 값; (선언과 동시에 초기화)

* 상수필드명은 모두 대문자로 지정

* 예약어 static final의 순서는 상관없다

 

* 한 번 지정한 값을 고정해서 쓰기 때문에 초기화 필수

* 값이 변경되어서는 안 되는 고정적인 값을 메모리(static)에 올려놓고 공유할 목적으로 사용