๋ฐ˜์‘ํ˜•
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
Archives
Today
Total
05-06 00:00
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ž๋ฐ”/๊ธฐ๋ณธ ๊ฐœ๋… (11)

์žฌ๋ƒฅ์ด๐Ÿ˜ป

[์ž๋ฐ”] ์˜ค๋ฒ„๋ผ์ด๋“œ ๋ฉ”์†Œ๋“œ ( Override Method )

[์ž๋ฐ”] Is A ์ƒ์† Has A ์ƒ์†๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ Is A ์ƒ์†์€ ๋ถ€๋ชจ๊ฐ€ ์ž์‹์ด ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ฐ–๊ณ  ์žˆ์ง„ ์•Š๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Is A ์ƒ์†์€ ํ•œ ์บก์Š์ด ๋‚ด๊ฐ€ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ์บก์Š์—์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋“ค์ด ์ƒ๋‹น ๋ถ€๋ถ„ ์žˆ์„ ๋•Œ, develop247.tistory.com ์•ž์„œ ํ•œ ์ด์•ผ๊ธฐ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. Is A ์ƒ์†์„ ํ†ตํ•ด ๊ธฐ์กด์— ์žˆ๋˜ ๊ฐ์ฒด์— ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์™„์„ฑํ–ˆ๋Š”๋ฐ, ๊ธฐ์กด ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•œ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ณ ๋ ค๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋Š” ์ ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์šฐ์„  ์–ด๋–ค ์‹์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์šฐ์„  ํ• ๋‹น๋˜๋Š”์ง€ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ธฐ์กด ๊ฐ์ฒด Parent ์™€ Parent ๋ฅผ Is A ์ƒ์†ํ•˜๋Š” Child ๊ฐ์ฒด๋ฅผ ๊ฐ–๊ณ  ์žˆ..

[์ž๋ฐ”] Is A ์ƒ์†

Has A ์ƒ์†๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ Is A ์ƒ์†์€ ๋ถ€๋ชจ๊ฐ€ ์ž์‹์ด ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ฐ–๊ณ  ์žˆ์ง„ ์•Š๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Is A ์ƒ์†์€ ํ•œ ์บก์Š์ด ๋‚ด๊ฐ€ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ์บก์Š์—์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋“ค์ด ์ƒ๋‹น ๋ถ€๋ถ„ ์žˆ์„ ๋•Œ, ๊ทธ ์บก์Š์„ ์ƒ์†ํ•˜์—ฌ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋“ค์„ ๊ฐ€์ ธ๋‹ค ์“ด๋‹ค๋Š” ๊ฐœ๋…์œผ๋กœ ์ดํ•ดํ•˜๋ฉด ์‰ฝ๋‹ค. ๋Œ€ํ‘œ์ ์ธ Is A ์ƒ์†์—๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ†ตํ•ด Is A ์ƒ์†์„ ํ•˜์—ฌ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ƒ์†ํ•จ์œผ๋กœ์จ ์ž‘์—… ์†๋„๋ฅผ ํ–ฅ์ƒํ•˜๊ณ , ์ž‘์—…๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์žฅ์ ์€ ์ƒ์‚ฐ์„ฑ์ด ์ข‹๋‹ค๋Š” ๊ฒƒ์ด์ง€๋งŒ, ๋‹จ์ ์œผ๋กœ๋Š” ๊ธฐ์„ฑํ’ˆ์œผ๋กœ ์ƒ๊ฐ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ๊ฑฐ์˜ ๋ชจ๋“  ๋ถ€๋ถ„์„ ๊ฐ€์ ธ๋‹ค ์“ฐ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ IT๋Š” ๊ต‰์žฅํžˆ ๋น ๋ฅธ ์†๋„๋กœ ์„ฑ์žฅํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋‹ค์ˆ˜ ํ˜„์—…์ž๋“ค์ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํ˜ธํ•˜๊ณ , ์ผ๋ถ€๋ถ„์„ ๋‚˜์˜ ์•„์ด๋””์–ด๋กœ ์ฐจ๋ณ„ํ™”์‹œํ‚ค๋Š” ์ „๋žต..

[์ž๋ฐ”] ํ”„๋กœ๊ทธ๋žจ ์„ค๊ณ„ ์‹œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณ ๋ คํ•ด์•ผ๋˜๋Š” ๊ฒƒ

๊ณ„์‚ฐ๊ธฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 1. ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค. 2. ์›ํ•˜๋Š” ์—ฐ์‚ฐ์„ ์„ ํƒํ•œ๋‹ค. 3. ์„ ํƒํ•œ ์—ฐ์‚ฐ์— ๋”ฐ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹คํ–‰ํ•œ๋‹ค. 4. ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋™์ž‘ํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์˜ ํ”Œ๋žซํผ์ด ํ™•์žฅ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ์ฒ˜์Œ์—” ์›น์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ–ˆ๋˜ ํ”„๋กœ๊ทธ๋žจ์ด, ๋‹จ์ผ์ ์ธ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์—ฌ๋Ÿฌ ์–ธ์–ด๋“ค ์ค‘ ๋งˆ์Œ์— ๋“œ๋Š” GUI ๋””์ž์ธ ๋˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์—ฌ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๋‹ค. ๊ธฐ์กด์— ์›น์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ๋“ค์„ ์ „๋ถ€ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ์ƒ๋‹นํžˆ ๊ท€์ฐฎ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ๊ณ„์‚ฐ๊ธฐ ํ”„๋กœ๊ทธ๋žจ์˜ ์—ฐ์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜(3)์€ ๊ณ„์† ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž…์ถœ๋ ฅ(1, 2, 4)๋งŒ ์‚ฌ์šฉ..

[์ž๋ฐ”] ์ƒ์„ฑ์ž ์˜ค๋ฒ„๋กœ๋“œ(Constructor Overload)

์ƒ์„ฑ์ž(Constructor)๋Š” ํ•จ์ˆ˜์˜ ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์˜ค๋ฒ„๋กœ๋“œ ๋˜ํ•œ ๊ฐ€๋Šฅํ•˜๋‹ค. public Exam() { x = new List[5]; } public Exam(int size) { x = new List[size]; } Exam ๊ฐ์ฒด์—์„œ ๋ณ€์ˆ˜ x์˜ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ณธ 3์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ x ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ž„์˜๋กœ ์ง€์ •ํ•ด์ฃผ๊ณ  ์‹ถ์„ ๋•Œ, ์ •์ˆ˜ ๊ฐ’์„ ๋„ฃ์–ด ์„ ์–ธํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ ๋‘ ๊ฐœ์˜ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์œ„์˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด ํ•„์š”์— ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ƒ์„ฑ์ž ์˜ค๋ฒ„๋กœ๋“œ(Constructor Overload)๋ผ๊ณ  ํ•œ๋‹ค. ์ƒ์„ฑ์ž ์˜ค๋ฒ„๋กœ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋• ์ค‘๋ณต๋œ ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค. ์ƒ์„ฑ์ž ์ฝ”๋“œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. public E..

[์ž๋ฐ”] ๊ฐ์ฒด์ง€ํ–ฅ - ์€๋‹‰์„ฑ(Information Hiding)

์บก์Šํ™”๊ฐ€ ๊นจ์ง€์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ •๋ณด์˜ ์€๋‹‰ํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋งŒ์•ฝ ํด๋ž˜์Šค A ์— ๋ณ€์ˆ˜ x ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์€๋‹‰ํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜๋‹ค๋ฉด, ํด๋ž˜์Šค A๊ฐ€ ์•„๋‹Œ ์–ด๋Š ๊ณณ์—์„œ๋“  ๋ณ€์ˆ˜ x๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ์บก์Šํ™”๊ฐ€ ๊นจ์ง€๊ฒŒ ๋œ๋‹ค. ์บก์Šํ™”๋ฅผ ๊นจํŠธ๋ฆฌ์ง€ ์•Š๊ธฐ ์œ„ํ•ด, ์ •๋ณด์˜ ์€๋‹‰ํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ private, public ์„ ์‚ฌ์šฉํ•œ๋‹ค. ํด๋ž˜์Šค A ๋‚ด์— ๋ณ€์ˆ˜ x๋ฅผ ์„ ์–ธํ•  ๋•Œ, ์•ž์— private ๋ฅผ ๋ถ™์ด๋ฉด ํด๋ž˜์Šค A๋ฅผ ์ œ์™ธํ•œ ์–ด๋Š ๊ณณ์—์„œ๋„ ๋ณ€์ˆ˜ x๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ public ์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋””์„œ๋“  ๋ณ€์ˆ˜ x๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ํ†ต์ƒ์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋“ค์€ public ์œผ๋กœ ์„ ์–ธํ•ด์ฃผ๊ณ , ์บก์Šํ™”๋ฅผ ์ง€์ผœ์•ผํ•˜๋Š” ๋ณ€์ˆ˜๋“ค์—๋Š” private ๋ฅผ ์‚ฌ์šฉํ•ด..

[์ž๋ฐ”] ๊ฐ์ฒด์ง€ํ–ฅ - ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ(Instance method)

Exam ์ด๋ผ๋Š” ํด๋ž˜์Šค์—์„œ ์„ ์–ธ๋˜์–ด์žˆ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. x = new Exam(); Exam.input(x); Exam.print(x); ... ์šฐ๋ฆฌ๊ฐ€ ์•ž์„œ ๋ฐฐ์› ๋˜ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์บก์Šํ™”๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Exam์˜ ํ•จ์ˆ˜๋“ค์„ ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ์ธ์Šคํ„ด์Šค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด x = new Exam(); x.input(); x.print(); ... ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹จ์ˆœํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ค„์ธ๋‹ค๋Š” ๊ฐœ๋…์ด ์•„๋‹ˆ๋ผ, ๋ณ€์ˆ˜ x ์—๊ฒŒ ์ฑ…์ž„์„ ๋ถ€์—ฌํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค. ์ „์ž์˜ ์ฝ”๋“œ์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ x๋ผ๋Š” ๋งค๊ฐœ์ฒด๋ฅผ ํ†ตํ•ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด, ํ›„์ž์˜ ์ฝ”๋“œ์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  x๋ผ๋Š” ๋งค๊ฐœ์ฒด๊ฐ€ ์ง์ ‘ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ „์ž์˜ ์ฝ”๋“œ๋Š” ์Šคํƒœํ‹ฑ ๋ฉ”..