JavaRush /Java Blog /Random-KO /์ตœ์ข… Java ๋ฉ”์†Œ๋“œ ๋ฐ ํด๋ž˜์Šค
articles
๋ ˆ๋ฒจ 15

์ตœ์ข… Java ๋ฉ”์†Œ๋“œ ๋ฐ ํด๋ž˜์Šค

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์ˆ˜์ •์ž๋กœ ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋ฅผ ํ‘œ์‹œํ•˜๋ฉด finalํŒŒ์ƒ ํด๋ž˜์Šค๊ฐ€ ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ๋Š” ๋ฉ”์†Œ๋“œ์˜ ์ตœ์ข… ๋ฒ„์ „์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค ์ „์ฒด๋ฅผ ๋กœ ํ‘œ์‹œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค final. ์ตœ์ข… Java ๋ฉ”์†Œ๋“œ ๋ฐ ํด๋ž˜์Šค - 1
final class NoExtending {
// โ€ฆ
}
๋กœ ํ‘œ์‹œ๋œ ํด๋ž˜์Šค๋Š” final์ƒ์†๋  ์ˆ˜ ์—†์œผ๋ฉฐ ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ๊ฐ„์ ‘์ ์œผ๋กœ ์†์„ฑ์„ ํš๋“ํ•ฉ๋‹ˆ๋‹ค final. ํด๋ž˜์Šค ๋ฐ ๋ฉ”์„œ๋“œ ์„ ์–ธ์— ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด final์ฝ”๋“œ ๋ณด์•ˆ ์ˆ˜์ค€์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค์— ์ˆ˜์ •์ž๊ฐ€ ์žฅ์ฐฉ๋˜์–ด ์žˆ์œผ๋ฉด final๋ˆ„๊ตฌ๋„ ํด๋ž˜์Šค๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ํ”„๋กœ์„ธ์Šค์—์„œ ๊ณ„์•ฝ์„ ์œ„๋ฐ˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐํ˜ธ๊ฐ€ final๋ฉ”์†Œ๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒฝ์šฐ "์œ„์กฐ"์— ๋Œ€ํ•œ ๋‘๋ ค์›€ ์—†์ด ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ์™„์ „ํžˆ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. final์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”์„œ๋“œ๊ฐ€ ์›๋ž˜ ์˜๋„ํ•œ ๋Œ€๋กœ ์ •ํ™•ํ•˜๊ฒŒ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๋ฉ”์„œ๋“œ ์„ ์–ธ์— ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค . ๊ฐ€๋Šฅํ•œ ๊ณต๊ฒฉ์ž๋Š” ์žฌ์ •์˜๋œ ๋ฒ„์ „์„ ํ”„๋กœ๊ทธ๋žจ์— "๋ฏธ๋„๋Ÿฌ๋„ฃ์–ด" ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ์˜ ์›๋ž˜ ๊ตฌํ˜„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•”ํ˜ธ์— ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉ์ž๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋“ฑ๋ก๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ•ญ์ƒ true ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ์‹ค์ œ๋กœ ๋“ค์–ด๊ฐ”๋‹ค. ํŠน์ • ์ƒํ™ฉ์ด ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋” ๋‚˜์•„๊ฐ€ final์ „์ฒด ํด๋ž˜์Šค๋ฅผ ํด๋ž˜์Šค๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ๋Š” ValidatePassword๋™์ผํ•œ ์†์„ฑ์„ ๊ฐ„์ ‘์ ์œผ๋กœ ํš๋“ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ ๋˜๋Š” ํด๋ž˜์Šค ์„ ์–ธ์—์„œ ์ˆ˜์ •์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด final์ฝ”๋“œ์˜ ์ถ”๊ฐ€ ์‚ฌ์šฉ ๋ฐ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ์„ฑ์— ์‹ฌ๊ฐํ•œ ์ œํ•œ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. final์„ ์–ธ์—์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„์ด ์ž์ฒด ํฌํ•จ๋˜์–ด ์žˆ๊ณ  ์™„์ „ํžˆ ์™„๋ฃŒ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ™•์‹คํ•œ ํ‘œ์‹œ์ž…๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์‹ ์˜ ํ•„์š”์— ๋งž๊ฒŒ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๋ ค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ ์„ ํƒ์ด ์ œํ•œ๋˜๊ฑฐ๋‚˜ ์™„์ „ํžˆ ๋ฐ•ํƒˆ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. finalํด๋ž˜์Šค๋ฅผ ์ „์ฒด์ ์œผ๋กœ ํ‘œ์‹œํ•˜๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค์˜ ์ƒ์† ๊ธฐ๋Šฅ์ด ๋น„ํ™œ์„ฑํ™”๋˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์œ ์šฉ์„ฑ์ด ํฌ๊ฒŒ ์ค„์–ด๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์‹์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ final๊ทธ๋Ÿฌํ•œ ํฌ์ƒ์„ ๊ฐ์ˆ˜ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋Š”์ง€, ํฌ์ƒํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋งŽ์€ ๊ฒฝ์šฐ, ์ถฉ๋ถ„ํ•œ ์ˆ˜์ค€์˜ ์ฝ”๋“œ ๋ณด์•ˆ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ „์ฒด ํด๋ž˜์Šค๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€์ •ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. "์ค‘์š”ํ•œ" ๊ตฌ์กฐ ์š”์†Œ๋งŒ ์ˆ˜์ •์ž๋กœ finalํ‘œ์‹œํ•˜์—ฌ ํด๋ž˜์Šค์˜ ํ™•์žฅ์„ฑ์„ ๋ณด์กดํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค . final์ด ๊ฒฝ์šฐ ํด๋ž˜์Šค์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ๋™์‹œ์— ์ƒˆ ๋ฉค๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒ์†์„ ํ—ˆ์šฉํ•˜์ง€๋งŒ "์ด์ „" ๋ฉค๋ฒ„๋ฅผ ์žฌ์ •์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก , ๋ฉ”์„œ๋“œ ์ฝ”๋“œ์—์„œ ์•ก์„ธ์Šคํ•˜๋Š” ํ•„๋“œ๋Š” ๋‹ค์Œ ์ค‘ finalํ•˜๋‚˜๋กœ ์ง€์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํŒŒ์ƒ๋œ ํด๋ž˜์Šค๊ฐ€ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์˜ ๋™์ž‘์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ˆ˜์ •์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ํšจ๊ณผ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•ด๊ฒฐํ•œ ์ฝ”๋“œ ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š์€ ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.finalprivatefinalfinal, ๋Ÿฐํƒ€์ž„ ์‹œ์Šคํ…œ์€ ๊ฐœ์ฒด์˜ ์‹ค์ œ ํด๋ž˜์Šค๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ์˜ค๋ฒ„๋กœ๋“œ๋œ ๋ฉ”์„œ๋“œ ๊ทธ๋ฃน์—์„œ ๊ฐ€์žฅ ์ ์ ˆํ•œ ์ฝ”๋“œ์™€ ํ˜ธ์ถœ์„ ์—ฐ๊ฒฐํ•œ ๋‹ค์Œ ํ•ด๋‹น ์ฝ”๋“œ๋กœ ์ œ์–ด๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. 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
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION