얄코의 제대로 파는 자바/섹션5 객체지향 프로그래밍
클래스의 final
백엔드 개발자
2024. 3. 19. 00:05
클래스에서 final은 각각 어떤 의미를 갖는가
final 필드
1. final로 초기화되어 만들어진 필드는 main에서 수정이 불가능하다.
2. 클래스의 final 필드는 초기화를 바로 안해도 되지만, 생성자에서는 반드시 초기화 해줘야 한다.(보통 생성자에서 진행)
private final int no;
public String name;
// ⭐️ 필수 - no가 final이고 초기화되지 않았으므로
public YalcoChicken(int no, String name) {
this.no = no;
this.name = name;
}
3. 메서드에서도 final 필드 수정은 불가능하다
public void changeFinalFields () {
// ⚠️ 불가
this.no++;
}
final 메서드
1. final이 들어간 메서드는 오버라이딩이 안된다.
final 클래스
final 클래스는 extends로 상속이 불가능하다.
final 인스턴스
인스턴스를 담는 자료형을 final로 지정했을 경우 다른 값을 넣는 것은 불가능하다.
필드는 수정이 가능하다.
final YalcoChicken store1 = new YalcoChicken(3, "판교");
// ⚠️ 불가
store1 = new YalcoChicken(17, "강남");
// 💡 요소 변경은 가능
store1.name = "선릉";
출처
제대로 파는 자바 (Java) - by 얄코 강의 - 인프런
적당히 배워서는 살아남을 수 없는 시대. 자바, 한 번에 제대로 파서 마스터하세요!, 자바(Java), 생기초부터 활용까지 강의 하나로 한번에 끝! 🎓 대학교 이메일 계정이 있다면? 👉 얄코 강의
www.inflearn.com