Java, final - 활용
final 은 유용한 제약 사항으로, 특정 변수의 값 할당 후 변경하지 않아야 하는 변수가 있다면 final을 사용하도록 한다. 만약 협업에 참가한 개발자가 고객의 데이터를 변경하여 큰 문제가 예상된 경우 final 로 선언하여 생성자로 값을 할당한다.
final 키워드를 사용한 변수를 변경 시도한 경우, 컴파일이 찾아서 문제를 해결에 도움을 준다.
final - Member 이름 변경하기
코드에서 final 로 선언한 id 필드를 변경 시도한 경우 컴파일 오류로 변경할 수 없다.
이처럼 id 처럼 중요한 데이터는 변경을 방지하여 차후 큰 문제에 예방할 수 있다.
💡
id 변수 같은 중요한 데이터가 변경되었다면 데이터베이스에서 매핑된 장바구니 상품이 사라지거나, 내역, 쿠폰이 사라지는 것을 예상할 수 있다.
Member.java
package finalLocal;
public class Member {
// 생성자로 받아주도록 빈값으로 설정한다.
private final String id; // final 키워드 선언
private String name;
public Member(String id, String name) {
this.id = id;
this.name = name;
}
public void changeData(String id, String name) {
this.name = name;
// this.id = id; 변경 시도 시 컴파일에서 오류를 가르켜 준다.
}
public void show() {
System.out.println(id + " " + name);
}
}
MemberMain.java
package finalLocal;
public class MemberMain {
public static void main(String[] args) {
Member member = new Member("aaa", "jane");
member.show();
member.changeData("bbb", "jenniper");
member.show();
}
}
출력 결과
aaa jane
aaa jenniper