산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java final 키워드 마스터: 변수, 메서드, 클래스에서의 활용

Java final 키워드

Java의 final 키워드가 상수 보호, 메서드 오버라이딩 방지, 클래스 상속 차단을 어떻게 구현하는지 명확한 예제로 알아봅니다.

Java에서 final 키워드는 변수, 메서드, 클래스 등 엔티티가 최초 정의 이후 변경될 수 없음을 나타냅니다. 이 불변 계약은 컴파일 타임에 강제되어 개발자에게 프로그램 동작에 대한 보장을 제공합니다.


1. Final 변수

변수를 final로 선언하면 최초 할당 후 값이 고정됩니다. 이는 Java에서 상수를 정의하는 표준 방식입니다.

class Main { public static void main(String[] args) { // final 변수 선언 final int AGE = 32; // 다음 라인은 컴파일 에러 발생 // AGE = 45; System.out.println("Age: " + AGE); } } 

컴파일러는 AGE 재할당을 시도하는 코드를 컴파일하지 않으며, 다음과 유사한 에러를 냅니다:

cannot assign a value to final variable AGE AGE = 45; ^ 

팁: 관례상 상수 이름은 모두 대문자와 언더스코어(예: MAX_SIZE)로 작성하여 불변성을 나타냅니다.


2. Final 메서드

Final 메서드는 Java 상속 안전망의 일부입니다. 메서드가 final로 표시되면 하위 클래스에서 오버라이딩할 수 없어 원래 구현이 보존됩니다.

class FinalDemo { // Final 메서드 public final void display() { System.out.println("This is a final method."); } } class Main extends FinalDemo { // 오버라이딩 시도 – 컴파일 에러 발생 public final void display() { System.out.println("The final method is overridden."); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } } 

display() 메서드 오버라이딩 시 다음과 같은 에러가 발생합니다:

display() in Main cannot override display() in FinalDemo public final void display() { ^ overridden method is final 

3. Final 클래스

final 클래스는 하위 클래스로 만들 수 없습니다. 이는 보안이 중요하거나 불변인 타입에 자주 사용되어 클래스 동작이 변경되지 않게 합니다.

// Final 클래스 정의 final class FinalClass { public void display() { System.out.println("This is a final class."); } } // Final 클래스 확장 시도 class Main extends FinalClass { public void display() { System.out.println("The final class is overridden."); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } } 

컴파일러는 이 상속을 다음과 같이 거부합니다:

cannot inherit from final FinalClass class Main extends FinalClass { ^ 

java

  1. C# static 키워드: 정적 변수, 메서드, 클래스 완벽 활용
  2. Java instanceof 연산자 완벽 가이드: 기본 사용법부터 상속, 인터페이스까지
  3. Java 상속 마스터: 개념, 종류, 실전 예제 총정리
  4. Java 정적 중첩 클래스 이해: 용법, 내부 클래스와의 차이, 예제
  5. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  6. Java 싱글톤 패턴 완벽 가이드: 안전하게 구현하고 사용하기
  7. Java 리플렉션 마스터: 런타임에 클래스, 메서드, 필드 검사 및 조작
  8. Java ObjectOutputStream 마스터하기: 직렬화, 메서드, 실전 예제
  9. Java 제네릭 마스터하기: 재사용 가능하고 타입 안전한 코드 작성
  10. java.io로 Java 파일 작업 마스터하기 – 생성, 읽기, 쓰기 및 삭제