1. final 필드
final 타입 필드 [= 초기값];
- final는 최종적이라는 뜻
- final 필드는 초기값이 저장되면 최종적인 값이 되어서 프로그램 실행 도중에 수정할 수 없습니다.
- 초기화되지 않은 final 필드를 그대로 두면 컴파일 에러가 발생
final 필드 초기화 방법
1) 필드 선언 시 초기화
public class Computer {
// 필드 선언 시 초기화
final String modelName = "Mac Book Air M1";
final long serial = 1432;
final CPU cpu = new CPU();
}
2) 생성자에서 초기화
public class Computer {
final String modelName;
final long serial;
final CPU cpu;
// 생성자에서 초기화
public Computer(String modelName, long serial, CPU cpu) {
this.modelName = modelName;
this.serial = serial;
this.cpu = cpu;
}
}
2. 상수
static final 타입 상수 [= 초기값];
- 상수는 불변의 값
- final 필드는 객체마다 저장되고, 생성자의 매개 값을 통해서 여러 가지 값을 가질 수 있기 때문에 상수가 될 수 없습니다.
- 초기값이 단순 값이라면 선언 시에 값을 주는 것이 일반적이지만, 복잡한 초기화일 경우 정적 블록에서도 초기화할 수 있습니다.
- 상수 이름은 모두 대분자로 작성하는 것이 관례이고 서로 다른 단어가 혼합된 이름이라면 _로 단어들을 연결 해줍니다.
상수 초기화 방법
1) 일반적인 상수 초기화
public class Computer {
// 초기화
static final String MODEL_NAME = "Mac Book Air M1";
static final long SERIAL = 123432;
}
2) 정적 블록을 이용한 초기화
public class Computer {
static final String MODEL_NAME = "Mac Book Air M1";
static final long SERIAL = 123432;
static final String FULL_INFO;
// 정적 블록으로 초기화
static {
FULL_INFO = MODEL_NAME + " " + SERIAL;
}
}
'Backend > 객체 지향 프로그래밍' 카테고리의 다른 글
[Java] 접근 제한자 (Access Modifier) (0) | 2022.04.14 |
---|---|
[Java] 패키지와 import문 (0) | 2022.04.13 |
[Java] 단 하나의 객체만 생성 (싱글톤 패턴, Singleton pattern) (0) | 2022.04.10 |
[Java] 정적 멤버 (0) | 2022.04.09 |
[Java] 인스턴스 멤버 (0) | 2022.04.08 |