-
[JAVA] final 멤버 변수는 상수가 아니다JAVA 2018. 10. 25. 22:24
멤버 변수의 final을 "상수"라고 생각하는 개발자분이 게셨다.
final로 선언한 이유를 상수로 사용하기 위해 선언했다는 답변은 정확한 답은 아니다.
final은 정확히 엄밀히 말하면 "딱1번 값을 할당 할 수 있다"이다.
아래 예제를 보자
12345678910111213141516171819package test_java;public class Test{final String userName;public Test(String name){this.userName=name;}public String getUserName(){System.out.println(userName);return USER_NAME;}}cs 123456789101112131415161718package test_java;import java.io.IOException;public class Main{public static void main(String[] args) throws IOException{Test t1= new Test("초민");t1.getUserName();Test t2 = new Test("두부");t2.getUserName();}}// CLASS ENDcs 상수는 변하지않는 수이지만 클래스의 인스턴스를 생성할때 마다생성자에 의해서 값이 바뀌고 있다.그래서 흔히 말하는 final은 상수다 라는 설명은 적절하지못하다'JAVA' 카테고리의 다른 글
[JAVA] 람다식과 함수형 인터페이스 (0) 2018.11.11 [JAVA] 람다식이란? 그리고 사용법! (0) 2018.11.11 [JAVA] LocalDate, LocalDateTime 사용법 (0) 2018.11.05 [소스코드 보안 취약점]적절하지 않은 난수 값 사용 (0) 2018.10.21 [JAVA] 객체 정렬 Comparator (0) 2018.08.29