▶ 클래스변수 (static 변수)와 상수필드 (static final)
■ static
[표현법]
접근제한자 예약어(생략가능) 자료명 변수명;
static은 '정적인, 고정된, 움직이지 않는'의 의미를 가진다.
즉, static키워드는 특정 변수나, 메서드를 메모리 영역(static 영역)에 "고정"시켜두는 역할을 한다.
이렇게 static영역에 고정된 데이터는 모든 객체에서 "공유"할 수 있다.
따라서 자주 사용하는 변수, 메서드를 static으로 선언함으로써 메모리영역에 미리 올려두고 모든 객체에서 공유하면서 사용하게 된다.
ex) static 키워드가 붙은 메서드
Math.random(); 등등
static필드
생성시점 : 프로그램 실행과 동시에 메모리에 static영역에 할당된다.(굳이 객체 생성하지 않아도 된다.)
소멸시점 : 프로그램 종료 시 소멸된다.
따라서 프로그램의 생명주기와 동일한 생명주기를 가지게 되므로 static영역 안에 너무 많은 클래스변수, 메서드를 추가하는 것은 좋지 못하다.
■ 상수필드
[표현법]
public static final 자료형 변수명 = 값;
※ 한번 지정된 값을 고정해서 쓰기 때문에 무조건 초기화를 해줘야 한다.
예약어의 순서는 상관없다.
상수 필드는 값이 변경되어서는 고정적인 값을 메모상에 올려두고 공유하면 사용할 목적으로 이용한다.
ex) Math.PI
※ 상수명은 항상 모든 글자가 대문자
static : 공유의 개념(재사용)
final : 한번 지정된 값을 변경x(상수)
'JAVA' 카테고리의 다른 글
JAVA(15) 추상클래스와 추상메서드 (0) | 2023.04.08 |
---|---|
JAVA(14) 다형성 (0) | 2023.04.08 |
JAVA(13) 객체(Object) (0) | 2023.04.02 |
JAVA(12) 2차원 배열 (0) | 2023.03.31 |
JAVA(11-2) 배열 복사 (0) | 2023.03.30 |