1. final
- ๋ณ์์ final ํค์๋๊ฐ ๋ถ์ผ๋ฉด ๋๋ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค.
1) final ์ง์ญ ๋ณ์
public class FinalMain {
final int data1;
data1 = 10; // ์ต์ด ํ๋ฒ๋ง ํ ๋น ๊ฐ๋ฅ
data1 = 20; // -> ์ปดํ์ผ ์ค๋ฅ
static void method(final int parameter) {
//parameter = 20; // -> ์ปดํ์ผ ์ค๋ฅ
}
}
- final์ ์ง์ญ ๋ณ์์ ์ค์ ํ ๊ฒฝ์ฐ ์ต์ด ํ๋ฒ๋ง ํ ๋นํ ์ ์๋ค.
- ๋งค๊ฐ๋ณ์์ final์ด ๋ถ์ผ๋ฉด ๋ฉ์๋ ๋ด๋ถ์์ ๋งค๊ฐ๋ณ์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค. ๋ฉ์๋ ํธ์ถ ์์ ์ ์ฌ์ฉ ๋ ๊ฐ์ ๋๊น์ง ์ฌ์ฉ๋๋ค.
2) final - ํ๋ (๋ฉค๋ฒ ๋ณ์)
public class ConstrucInit {
final int value;
static final int CONST_VALUE = 10; //์์
public ConsturcInit(int value) {
this.value = value; //final์ ํ๋์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์์ฑ์๋ฅผ ํตํด ํ๋ฒ๋ง ์ด๊ธฐํ ๊ฐ๋ฅ
}
}
- final ํ๋์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์์ฑ์๋ฅผ ํตํด ํ ๋ฒ ์ด๊ธฐํ ํ ์ ์์ง๋ง, finalํ๋๋ฅผ ํ๋์์ ์ด๊ธฐํ ํ ๊ฒฝ์ฐ ์์ฑ์๋ฅผ ํตํด์๋ ์ด๊ธฐํ ํ ์ ์๋ค.
- static ๋ณ์์ fianl์ ์ ์ธํ ์ ์๊ณ , ๋ณ์ ์๋ช ๋ฐฉ๋ฒ์ด ๋๋ฌธ์์ธ๋ฐ ์ด๋ฅผ ์์๋ผ๊ณ ํ๋ค.
- ์์
- ๋ณํ์ง ์๊ณ , ํ๋์ ์ผ์ ํ ๊ฐ์ ๊ฐ๋ ์๋ฅผ ๋งํ๋ค. static final์ ๋ถ์ธ๋ค.
- ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ๊ณ ๊ตฌ๋ถ์ _๋ฅผ ๋ถ์ธ๋ค. (๊ด๋ก)
- ํ๋๋ฅผ ์ง์ ์ ๊ทผํด์ ์ฌ์ฉํ๋ค. (์์๋ ๊ณ ์ ๋ ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๊ธฐ ๋๋ฌธ)
- ex) PI, HOUR_IN_DAY, MINUTE_IN_HOUR ๋ฑ
์ถ์ฒ : ๊น์ํ์ ์ค์ ์๋ฐ-๊ธฐ๋ณธํธ
๋๊ธ