-
자바 변수명 finalJava 2022. 10. 13. 20:17
서론
- 자바에서 final을 사용하면 수정할 수 없다.
- final은 엔티티를 한번만 할당한다. (즉, 두 번이상 할당하려고 하면 컴파일 오류가 발생)
*엔티티 : 하나의 클래스라고 생각하자(DTO와 비슷)
본론
final 필드 : 한번 초기화된 변수는 변경 불가능
final int number = 1; //final 타입 필드 [= 초기값];final 객체 : 객체 자체는 변경이 불가능하지만 객체 내부 변수는 변경 가능
class Company{ String name = "회사명"; public String getName() { return name; } public void setName(String name) { this.name = name; } } public class Final_ex { public static void main(String[] args) { final Company company = new Company(); //company = new Company(); //객체를 한번 생성했다면 재생성 불가능 company.setName("ex회사"); //클래스의 필드는 변경가능 } }- final 클래스 : final 클래스여도 필드는 setter함수를 통해 변경이 가능
//final 클래스 final class Company{ String name = "회사명"; } //상속 불가능 class A_Company extends Company{ }- final 메서드 : 자신이 만든 메서드를 변경할 수 없게씀 하고 싶을 때 사용
class Company{ String name = "회사명"; public final void print() { System.out.println("회사 이름은 :"+name+" 입니다."); } } class A_Company extends Company{ String name = "a회사"; //메서드 오버라이드 불가능 public void print() { } }- 메서드 인자값에 final을 사용하는 경우 : final 인자값의 변경이 불가능
class Company{ String name = "회사명"; public void setName(final String name) { //name = "ex회사2"; //인자값으로 받은 final변수는 변경 불가능 this.name = name; } } public class Final_ex { public static void main(String[] args) { final Company company = new Company(); company.setName("ex회사"); } }결론
- final을 사용하면 변경, 상속이 불가능하다.
'Java' 카테고리의 다른 글
자바 반복문 for문 / while문 / 향상된 for문 (0) 2022.10.17 자바 parameter / argument (0) 2022.10.16 자바 HashSet (0) 2022.10.13 자바 HashMap(map) (0) 2022.10.12 자바 forward / redirect 차이점 (0) 2022.10.12