전역 변수
클래스 영역에 바로 선언한 변수
클래스 내에서면 어디서든 전역으로 사용 가능
> 멤버 변수 ( == 필드, 인스턴스 변수)
생성 시점 : new 연산자를 통해서 객체 생성 시 메모리의 heap 영역에 할당
소멸 시점 : 객체 소멸 시 같이 소멸
> 클래스 변수 ( == static 변수)
생성 시점 : 해당 객체가 생성되지 않더라도, 프로그램 실행과 동시에 메모리의 static 영역에 할당
소멸 시점 : 프로그램 종료 시 소멸
지역 변수
클래스 영역 내 특정한 구역에 선언한 변수
선언된 해당 지역에서만 사용 가능
* 특정한 구역 : 메소드, 제어문 등등
생성 시점 : 지역 변수가 속해있는 특정한 구역 실행(호출) 시 메모리의 stack 영역에 할당
소멸 시점 : 특정한 구역 종료 시 소멸
접근제한자
필드에 접근할 수 있는 범위를 제한하는 것
public | 어디서든 (같은 패키지, 다른 패키지 상관없이) 접근 가능 |
protected | 같은 패키지 접근 가능 다른 패키지일 경우 상속구조에서만 접근 가능 |
default | 오로지 같은 패키지에서만 접근 가능 |
private | only 해당 클래스 파일에서만 접근 가능 |
* 위에서 아래로 내려갈수록 접근할 수 있는 범위가 좁아짐
* public > protected > default > private
상수필드 (static final)
프로그램 시작 시 값이 저장되며 값 절대 변경 불가하다
[표현법]
public static final 자료형 상수필드명 = 값; (선언과 동시에 초기화)
* 상수필드명은 모두 대문자로 지정
* 예약어 static final의 순서는 상관없다
* 한 번 지정한 값을 고정해서 쓰기 때문에 초기화 필수
* 값이 변경되어서는 안 되는 고정적인 값을 메모리(static)에 올려놓고 공유할 목적으로 사용
'Study' 카테고리의 다른 글
[JAVA/자바] 다형성 (Polymorphism) (0) | 2022.11.15 |
---|---|
[JAVA/자바] 클래스 (class) - 필드 / 생성자 / 메소드 (0) | 2022.11.10 |
[JAVA/자바] 상속 (Inherit) (0) | 2022.11.10 |
[JAVA/자바] 객체 (Object) (0) | 2022.11.03 |
[JAVA/자바] 배열 (Array) - 선언 / 할당 / 초기화 / 복사 (0) | 2022.10.28 |