-
[Java] static, final, static final의 차이개발 지식/Java 2023. 6. 18. 17:11
1. static
- 객체 생성 없이 필드와 메서드를 사용하고자 할 때
- 공용 데이터에 해당하거나 인스턴스 필드를 포함하지 않는 메서드 선언 시
- 정적 메서드는 객체 생성 없이 바로 사용할 수 있는 특징 때문에 인스턴스 필드나 메서드, 그리고 this 키워드를 사용할 수 없다.
2. final
- 수정이 불가능하다는 의미
- final 필드에 값을 저장하는 방법에는 두 가지가 있다.
public class Shop { final int closeTime = 21; final int openTime; public Shop(int openTime) { this.openTime = openTime; } }
- 선언과 동시에 할당하는 법과 생성자를 통해 주입하는 방법이 있다.
- 생성자를 통해 주입하는 방법은 각 객체마다 필드에 다른 값을 할당할 수 있다.
- 클래스에 사용 시 해당 클래스는 상속이 불가능하다. (더이상 확장할 수 없음 == 수정이 불가능하다는 의미)
3. static final
- 모든 영역에서 고정된 값으로 사용하는 상수를 사용하고자 할 때
- "고정된 + 최종적인"의 의미로, 상수를 선언하고자 할 때 사용된다.
- final 자체만으로 각 객체마다 값이 다를 수 있기 때문에 상수를 의미할 수 없다.
'개발 지식 > Java' 카테고리의 다른 글
[Java] 배열과 List 사이의 변환 (0) 2023.11.15 [Java] Arrays.asList()와 List.of()의 차이 (1) 2023.11.15 [Java] 정규표현식(Regular Expression, regex) (0) 2023.07.27 [Java] 인텔리제이 단축키 모음 (0) 2023.07.02 [Java] static, final 키워드를 class에 사용하는 경우 (0) 2023.06.18