본문 바로가기
JAVA

[JAVA] final 지정자(클래스, 메서드, 변수에 지정하기)

by 정공자씨 2024. 4. 22.

 

 

final

정의

  • 금지의 의미를 가짐

 

용도

  1. 클래스 : 클래스의 상속을 금지
  2. 메서드 : 메서드의 오버라이딩을 금지
  3. 필드 : 값의 변경을 금지, 상수(constant)로 사용하겠다는 의미

 

 

 

클래스에 final 지정하기

  • 클래스명에 final을 지정하면, 해당 클래스는 자식 클래스에 상속이 금지
final  class  클래스명 { }

 

 

 

예제

 

 

 

 

 

메서드에 final 지정하기

  • final로 지정한 메서드를 자식 클래스에서 오버라이딩 하면 에러 발생
final  반환타입  메서드명( ) { }

 

 

 

예제

 

 

 

 

 

 

변수에 final 지정하기

  • 변수의 값을 금지한다는 뜻
  • 즉 상수(constant)로 사용하겠다는 뜻
[ 상수 ]
- 프로그램 실행 후 ~ 종료까지 일정한 값을 유지
- 모든 인스턴스에서 동일한 값을 공유


[ JAVA에서 상수의 형식 ]
public static final 타입 상수명 = 값;

1. 모든 클래스의 인스턴스에서 접근해야 하므로 public
2. 프로그램 실행 시에 메모리에 존재해야 하므로 static
3. 상수는 값을 변경할 수 없으므로 final

 

 

자바 상수 선언 방법

public static final int SAFE_SPEED = 60;   // 도로 주행 규정 속도
public static final String SERVER_IP_ADDR = "192.0.0.1";   // 서버 주소
  • 프로그램 실행 시에 즉시 메모리에 생성(static)
  • 변경이 불가능(final)
  • 누구나 접근 가능(public)