Android/개발 관련 팁
[JAVA] final 이해하기
오패산개구리
2021. 8. 23. 15:03
728x90
반응형
자바의 기본기를 닦고 안드로이드를 시작한 것이 아니기에
코드를 보다 보면 종종 static, final 같은 표현을 만날 때가 있다.
변수 선언을 하면 안드로이드에서 알아서 final을 달아라, static을 달아라 이러길래 시키는 대로 하고 있었는데
오늘에서야 확실하게 짚고 넘어가려 한다.
final
여러 컨텍스트에서 단 한 번만 할당될 수 있는 entity를 정의할 때 사용됩니다
(위키피디아 참고)
단순하게 말하면 final로 선언된 변수는 한번 초기화되면 다른 값으로 재할당할 수 없다는 것이다.
1
2
3
4
|
public void test(){
final String str = "abc" // abc라는 값이 할당된 String 변수 str
str = "def" // 에러 발생!
}
|
cs |
하지만 객체 타입의 변수를 final로 지정했을 때 재할당은 불가능하지만
객체의 속성은 변경 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public void test(){
final Movie movie = new Movie("Spyder Man",2009);
movie = new Movie("Hulk",2008); // 재할당 불가능!
movie.name = "Hulk" // 멤버 변수 변경은 가능!
class Movie{
String name;
int releaseDate;
movie(String name,int releaseDate){
this.name = name;
this.releaseDate = releaseDate;
}
}
}
|
cs |
728x90
반응형