DEV/JAVA
변수 | final
devvnn
2021. 12. 23. 20:07
- 변수를 정의할 때 final을 써주면, 그 변수는 '상수'가 되며, 상수는 한 번 정의하고 나서 다시 바꿀 수 없음
기본형
final double pi = 3.141592;
pi = 2.54;
|
cs |
- 위의 코드는 오류가 남
- final로 정의된 변수의 값은 바꿀 수 없음
참조형
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public static void main(String[] args) {
final Person p1 = new Person("김여름");
p1.setName("김가을");
System.out.println(p1.getName());
}
}
|
cs |
김가을
|
cs |
- 위의 코드는 문제없이 실행됨
- final은 p1에 해당하는 것이지, p1의 인스턴스 변수에 해당하는 것이 아니기때문
- 즉 p1의 이름을 못 바꾸도록 만드려면 Person 클래스 내에서 name을 final로 정의하면 됨
- 배열의 length 변수도 final 변수! 처음에 배열의 크기가 주어질 때 값이 정해지고 그 후에는 바꿀 수 없음