반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

멋진 개발자가 되고 싶다

[JAVA] final 이해하기 본문

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
반응형