언어/JAVA 자바
[JAVA] Final 이란?
gi2
2022. 3. 3. 15:39
'Final'
초기값이 저장되면 최종적인 값이 되어 프로그램 실행 도중 어떠한 변경도 할 수 없게 됨.
Final의 사용법
[1] final 필드 이용하기
Final int number = 0;
[2] final 객체 이용하기
객체 변수에 final을 선언하면 그 변수에 다른 참조 값 지정 불가능
한 번 생성된 final 객체는 같은 타입으로 재생성 불가능
객체 자체는 변경 불가능 , 객체 내부 변수는 변경 가능!
class Person{
int age = -1;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Final_ex {
public static void main(String[] args) {
final Person person = new Person();
//person = new Person(); //객체를 한번 생성했다면 재생성 불가능
person.setAge(9); //클래스의 필드는 변경가능
}
}
[3] final 클래스 이용하기
클래스에 final을 사용하면 더이상 그 클래스를 상속할 수 없음
//final 클래스
final class Person{
String name = "xxx";
}
//상속 불가능
class Girl extends Person{
}
[3] final 메서드 이용하기
클래스 내의 final 메서드를 사용하게 되면 상속받은 클래스는 그 메서드를 오버라이드 할 수 없음.
즉, 자신의 메서드를 변경하지 못하도록 하는 기능을 함.
class Person{
String name = "xxx";
public final void print() {
System.out.println("이름은 :"+name+" 입니다.");
}
}
class Girl extends Person{
String name = "xxx_G";
//메서드 오버라이드 불가능
public void print() {
}
}