์์ ์๋ก ํด๋์ค ๋ฉ์๋๋ฅผ ํ์ํ๋ฉด
final
ํ์ ํด๋์ค๊ฐ ๋ด๋ถ ๊ตฌํ์ ๋ณ๊ฒฝํ์ฌ ์ด ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ฆ, ์ฐ๋ฆฌ๋ ๋ฉ์๋์ ์ต์ข
๋ฒ์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ํด๋์ค ์ ์ฒด๋ฅผ ๋ก ํ์ํ ์๋ ์์ต๋๋ค final
.
final class NoExtending {
// โฆ
}
๋ก ํ์๋ ํด๋์ค๋ final
์์๋ ์ ์์ผ๋ฉฐ ํด๋น ํด๋์ค์ ๋ชจ๋ ๋ฉ์๋๋ ๊ฐ์ ์ ์ผ๋ก ์์ฑ์ ํ๋ํฉ๋๋ค final
. ํด๋์ค ๋ฐ ๋ฉ์๋ ์ ์ธ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด final
์ฝ๋ ๋ณด์ ์์ค์ ๋์ผ ์ ์์ต๋๋ค. ํด๋์ค์ ์์ ์๊ฐ ์ฅ์ฐฉ๋์ด ์์ผ๋ฉด final
๋๊ตฌ๋ ํด๋์ค๋ฅผ ํ์ฅํ ์ ์์ผ๋ฉฐ ํ๋ก์ธ์ค์์ ๊ณ์ฝ์ ์๋ฐํ ์๋ ์์ต๋๋ค. ๊ธฐํธ๊ฐ final
๋ฉ์๋๋ฅผ ๋ํ๋ด๋ ๊ฒฝ์ฐ "์์กฐ"์ ๋ํ ๋๋ ค์ ์์ด ๋ชจ๋ ์ํฉ์์ ๋ด๋ถ ๊ตฌํ์ ์์ ํ ์ ๋ขฐํ ์ ์์ต๋๋ค. final
์๋ฅผ ๋ค์ด, ๋ฉ์๋๊ฐ ์๋ ์๋ํ ๋๋ก ์ ํํ๊ฒ ์คํ๋๋์ง ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธํด์ผ ํ๋ ๋ฉ์๋ ์ ์ธ์ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ํฉํฉ๋๋ค . ๊ฐ๋ฅํ ๊ณต๊ฒฉ์๋ ์ฌ์ ์๋ ๋ฒ์ ์ ํ๋ก๊ทธ๋จ์ "๋ฏธ๋๋ฌ๋ฃ์ด" ์ด๋ฌํ ๋ฉ์๋์ ์๋ ๊ตฌํ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ํธ์ ๊ด๊ณ์์ด ์ฌ์ฉ์๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ฑ๋ก๋์์์ ๋ํ๋ด๋ ํญ์ true ๊ฐ์ ๋ฐํํฉ๋๋ค. ๊ทธ๋ ์ค์ ๋ก ๋ค์ด๊ฐ๋ค. ํน์ ์ํฉ์ด ํ์ฉํ๋ ๊ฒฝ์ฐ ๋ ๋์๊ฐ final
์ ์ฒด ํด๋์ค๋ฅผ ํด๋์ค๋ก ์ ์ธํ ์ ์๋ ๊ถ๋ฆฌ๊ฐ ์์ต๋๋ค. ๋ฉ์๋๋ ValidatePassword
๋์ผํ ์์ฑ์ ๊ฐ์ ์ ์ผ๋ก ํ๋ํฉ๋๋ค. ๋ฉ์๋ ๋๋ ํด๋์ค ์ ์ธ์์ ์์ ์๋ฅผ ์ฌ์ฉํ๋ฉด final
์ฝ๋์ ์ถ๊ฐ ์ฌ์ฉ ๋ฐ ๊ฐ๋ฐ ๊ฐ๋ฅ์ฑ์ ์ฌ๊ฐํ ์ ํ์ด ์ ์ฉ๋ฉ๋๋ค. final
์ ์ธ์์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฉ์๋ ๊ตฌํ์ด ์์ฒด ํฌํจ๋์ด ์๊ณ ์์ ํ ์๋ฃ๋์์์ ๋ํ๋ด๋ ํ์คํ ํ์์
๋๋ค. ๊ทํ์ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ํ์์ ๋ง๊ฒ ๊ธฐ๋ฅ์ ํ์ฅํ๋ ค๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋จธ๋ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํ ์๋จ ์ ํ์ด ์ ํ๋๊ฑฐ๋ ์์ ํ ๋ฐํ๋ ๊ฒ์
๋๋ค. final
ํด๋์ค๋ฅผ ์ ์ฒด์ ์ผ๋ก ํ์ํ๋ฉด ํด๋น ํด๋์ค์ ์์ ๊ธฐ๋ฅ์ด ๋นํ์ฑํ๋๊ณ ๋ค๋ฅธ ์ฌ์ฉ์์ ๋ํ ์ ์ฉ์ฑ์ด ํฌ๊ฒ ์ค์ด๋ค ์ ์์ต๋๋ค. ์์์ด๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ final
๊ทธ๋ฌํ ํฌ์์ ๊ฐ์ํ ์ค๋น๊ฐ ๋์๋์ง, ํฌ์ํ ๊ฐ์น๊ฐ ์๋์ง ํ์ธํ์ญ์์ค. ๋ง์ ๊ฒฝ์ฐ, ์ถฉ๋ถํ ์์ค์ ์ฝ๋ ๋ณด์์ ๋ฌ์ฑํ๊ธฐ ์ํด ์ ์ฒด ํด๋์ค๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ง์ ํ ํ์๋ ์์ต๋๋ค. "์ค์ํ" ๊ตฌ์กฐ ์์๋ง ์์ ์๋ก final
ํ์ํ์ฌ ํด๋์ค์ ํ์ฅ์ฑ์ ๋ณด์กดํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค . final
์ด ๊ฒฝ์ฐ ํด๋์ค์ ์ฃผ์ ๊ธฐ๋ฅ์ ๊ทธ๋๋ก ๋๊ณ ๋์์ ์ ๋ฉค๋ฒ๋ฅผ ์ถ๊ฐํ์ฌ ์์์ ํ์ฉํ์ง๋ง "์ด์ " ๋ฉค๋ฒ๋ฅผ ์ฌ์ ์ํ์ง ์์ต๋๋ค. ๋ฌผ๋ก , ๋ฉ์๋ ์ฝ๋์์ ์ก์ธ์คํ๋ ํ๋๋ ๋ค์ ์ค final
ํ๋๋ก ์ง์ ๋์ด์ผ ํฉ๋๋ค . ๊ทธ๋ ์ง ์์ผ๋ฉด ํ์๋ ํด๋์ค๊ฐ ๋ด์ฉ์ ๋ณ๊ฒฝํ์ฌ ํด๋น ๋ฉ์๋์ ๋์์ ์ํฅ์ ๋ฏธ์น ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์์ ์๋ฅผ ์ฌ์ฉํ๋ ๋ ๋ค๋ฅธ ํจ๊ณผ๋ ์ปดํ์ผ๋ฌ๊ฐ ํด๊ฒฐํ ์ฝ๋ ์ต์ ํ ๋ฌธ์ ๋ฅผ ๋จ์ํํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ฉ๋๋ค. ๋ค์์ผ๋ก ํ์๋์ง ์์ ๋ฉ์๋๊ฐ ํธ์ถ๋ ๋ ๋ฐ์ํ๋ ์ํฉ์
๋๋ค.final
private
final
final
, ๋ฐํ์ ์์คํ
์ ๊ฐ์ฒด์ ์ค์ ํด๋์ค๋ฅผ ๊ฒฐ์ ํ๊ณ ์ค๋ฒ๋ก๋๋ ๋ฉ์๋ ๊ทธ๋ฃน์์ ๊ฐ์ฅ ์ ์ ํ ์ฝ๋์ ํธ์ถ์ ์ฐ๊ฒฐํ ๋ค์ ํด๋น ์ฝ๋๋ก ์ ์ด๋ฅผ ์ ์กํฉ๋๋ค. getName
๊ทธ๋ฌ๋ ์๋ฅผ ๋ค์ด ์์์ ์ค๋ช
ํ ํด๋์ค ์์ ์ ๋ฉ์๋๋ฅผ Attr
๋ก ์ง์ ํ๋ค๋ฉด final
ํด๋น ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ์์
์ด ๋์ ๋๊ฒ ๋จ์ํ๋์์ ์ ์์ต๋๋ค. ์ ๊ด๋ จ๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ๊ฐ์ฅ ์ฌ์ํ ๊ฒฝ์ฐ์ getName
์ปดํ์ผ๋ฌ๋ ๊ฐ๋จํ ๋ฉ์๋ ํธ์ถ์ ํด๋น ๋ณธ๋ฌธ ์ฝ๋๋ก ๋ฐ๊ฟ ์ ์์ต๋๋ค. ์ด ๋ฉ์ปค๋์ฆ์ ์ฝ๋ ์ธ๋ผ์ธ์ด๋ผ๊ณ ํฉ๋๋ค. ์ธ๋ผ์ธ ๋ฒ์ ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ getName
๋ค์ ๋ ํํ์์ ์ ํํ ๋์ผํ๊ฒ ์คํ๋ฉ๋๋ค.
system.out.println("id = " + rose.name);
system.out.println("id = " + rose.getName());
์์ ํํ์์ ๋์ผํ์ง๋ง ๋ ๋ฒ์งธ ํํ์์ ์ฌ์ ํ โโ์ฅ์ ์ด ์์ต๋๋ค. ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด getName
์ด๋ฆ ํ๋์ ์ฝ๊ธฐ ์ ์ฉ ์์ฑ์ ๋ถ์ฌํ ์ ์๊ณ ํด๋์ค ์ฝ๋์ ํน์ ์์ค์ ์ถ์ํ๊ฐ ๊ฐ๋ฅํด ๋ ์์ ๋กญ๊ฒ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ํด๋์ค ๊ตฌํ. ์ปดํ์ผ๋ฌ๋ ์ฌ์ ์๋ฅผ ํ์ฉํ์ง ์์ผ๋ฏ๋ก ๋์ผํ ์ต์ ํ ๋ฐฉ์์ private
๋ฐ ๋ฉ์๋์ ์ ์ฉํ ์ ์์ต๋๋ค. statiั
ํด๋์ค ์ ์ธ์ ์์ ์๋ฅผ ์ฌ์ฉํ๋ฉด final
์ผ๋ถ ์ ํ ๊ฒ์ฌ ์์
์ด ๋ ํจ์จ์ ์ด ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋ฌํ ๋ง์ ์์
์ ์ด๋ฏธ ์ปดํ์ผ ๋จ๊ณ์์ ์ํ๋ ์ ์์ผ๋ฏ๋ก ์ ์ฌ์ ์ธ ์ค๋ฅ๊ฐ ํจ์ฌ ๋ ์ผ์ฐ ๊ฐ์ง๋ฉ๋๋ค. ์ปดํ์ผ๋ฌ๊ฐ ์์ค ํ
์คํธ์์ ํด๋์ค์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด final
ํด๋น ๊ฐ์ฒด๊ฐ ์ง์ ๋ ์ ํ์ธ์ง "ํ์ค"ํ ์ ์์ต๋๋ค. ์ปดํ์ผ๋ฌ๋ ์ ์ฒด ํด๋์ค ๊ณ์ธต ๊ตฌ์กฐ์์ ํด๋์ค๊ฐ ์ฐจ์งํ๋ ์์น๋ฅผ ์ฆ์ ํ๋จํ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉ๋๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ์์ ์๊ฐ final
์ ์ฉ๋์ง ์์ผ๋ฉด ํด๋น ๊ฒ์ฌ๋ ํ๋ก๊ทธ๋จ ์คํ ๋จ๊ณ์์๋ง ์ํ๋ฉ๋๋ค. ์ฐ์ต 3.4. vehicle ๋ฐ ์น๊ฐvehicle ํด๋์ค์ ๋ฉ์๋ ์ ์ธ์ ์ต์ข
์์ ์๋ฅผ ํฌํจํ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ด๋ ๊ฒ์
๋๊น ? ์๋ณธ ์์ค ๋งํฌ: http://src-code.net/metody-i-klassy-final-java
GO TO FULL VERSION