ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 변수명 final
    Java 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
Designed by Tistory.