static, final 키워드에 대한 정리
이론적인 의미와 선언, 사용법, 그리고 활용되는 케이스
final
- '최종적'이라는 의미
- final 키워드는 필드, 클래스, 메소드 선언에 사용된다.
1. final 필드
초기값이 저장되면 이것이 최종적인 값이 되어서 프로그램 실행 도중에 수정할 수 없다는 의미
1.1 final 필드 선언 방법
final 타입 필드 [= 초기값];
final 필드의 초기값을 주는 방법
- 필드 선언 시에 주는 방법
- 생성자에서 주는 방법 - 생성자는 final 필드의 초기화를 마쳐야 하는데, 만약 초기화되지 않은 final 필드를 그대로 남겨두면 컴파일 에러가 발생한다.
public class Person {
final String nation = "Korea";
final String ssn;
String name;
public Person(String ssn, String name) {
this.ssn = ssn;
this.name = name;
}
}
1.2 상수 (static final)
final 필드와 상수(static final)의 차이
- final 필드
- final 필드는 객체마다 저장되고, 생성자의 매개값을 통해 여러가지 값을 가질 수 있다.
- 상수 (static final)
- 불변의 값이라 객체마다 저장할 필요가 없는 공용성을 띠고 있으며, 여러가지 값으로 초기화될 수 없다.
- 상수는 객체마다 저장되지 않고 클래스에만 포함되므로 static 이면서 final 이어야 한다.
- 상수 선언 방법 두 가지
static final 타입 상수 [= 초기값];
static final 타입 상수
static {
상수 = 초기값;
}
2. final 클래스
final 클래스는 상속할 수 없는 클래스이다. 즉, final 클래스는 부모 클래스가 될 수 없어 자식 클래스를 만들 수 없다.
2.1 final 클래스 선언 방법
public final class 클래스 { ... }
2.2 final 클래스의 대표적인 예
- Java 표준 API의 String 클래스
- extends 키워드로 상속할 수 없다.
3. final 메서드
final 메서드는 오버라이딩(Overriding) 할 수 없는 메서드이다. 즉, 자식클래스에서 재정의할 수 없다.
3.1 final 메서드 선언 방법
public final 리턴타입 메서드( [매개변수, ...] ) { ... }
출처
- 이것이 자바다
'WEB > Java' 카테고리의 다른 글
static, final 키워드에 대하여 - ① static 키워드 (0) | 2022.02.08 |
---|---|
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 03-1 JPA 적용 (0) | 2022.02.02 |
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 02-2 lombok 적용 (0) | 2022.01.22 |
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 02-1 테스트코드 작성 (0) | 2022.01.16 |
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 01 gradle 설정 (0) | 2022.01.08 |