๐Ÿ“•JAVA

[JAVA] final

๋น™๋””์šฉ 2024. 4. 9.

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 ๋“ฑ

 

  

์ถœ์ฒ˜ : ๊น€์˜ํ•œ์˜ ์‹ค์ „ ์ž๋ฐ”-๊ธฐ๋ณธํŽธ 

๋Œ“๊ธ€