๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[D+58] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ4 (์ƒ์†, LSP, ์ธํ„ฐํŽ˜์ด์Šค) ๊ตญ๋น„์ง€์› D+58 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ4 - ์ƒ์† - ์ฝ”๋“œ์˜ ์žฌํ™œ์šฉ์„ฑ์„ ๋†’์ด๊ณ  ๊ณตํ†ต์  ๊ทœ์•ฝ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์„ฑ(์ƒ์†์„ฑ)์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. - ๋ถ€๋ชจํด๋ž˜์Šค๋ฅผ ํ™•์žฅํ•˜๊ณ  ์ž์‹ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. - ์ƒ์†์„ ๋งŒ๋“ค๋•Œ์—๋Š” ์–ด๋Š์ •๋„ ๋ณผ๋ฅจ์ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๋ณผ๋ฅจ์ด ์—†๋Š” ์ƒํƒœ๋กœ ์ƒ์†์„ ํ•œ๋‹ค๋ฉด ์ฝ”๋“œ์˜ ๋ณต์žก๋„๊ฐ€ ์˜คํžˆ๋ ค ์˜ฌ๋ผ๊ฐ€๊ณ  ๋ฆฌ๋”๋นŒ๋ฆฌํ‹ฐ๊ฐ€ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ƒ์† ๋ฉ”๋ชจ๋ฆฌ๋งต ์ƒ์„ฑ์ž์˜ ํ˜ธ์ถœ ์ˆœ์„œ ์œ„์˜ ๊ทธ๋ฆผ์„ ํ†ตํ•ด์„œ ์ƒ์„ฑ์ž์˜ ํ˜ธ์ถœ์ˆœ์„œ๋ฅผ ์•Œ์•„๋ณด๋ฉด, ๋ถ€๋ชจํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๊ฐ€ ๋จผ์ € ํ˜ธ์ถœ๋ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ Dog์˜ ์ƒ์„ฑ์ž๊ฐ€ ๋จผ์ € ํ˜ธ์ถœ์ด ๋œ๋‹ค. ์ด๋•Œ, Dog๋Š” ๋‹จ์ˆœํžˆ ํ˜ธ์ถœ๋งŒ๋˜๊ณ  ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋ถ€๋ชจํด๋ž˜์Šค์ธ Animal๋กœ ๋“ค์–ด๊ฐ€์„œ Animal์˜ ์ƒ์„ฑ์ž๊ฐ€ ์‹คํ–‰๋˜๊ณ ๋‚˜์„œ Dog์˜ ์ƒ์„ฑ์ž๊ฐ€ ๊ทธ ์ดํ›„์— ์‹คํ–‰๋œ๋‹ค. ์ด์ฒ˜๋Ÿผ ์šฐ๋ฆฌ๋Š” ๊ฐ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ.. 2022. 12. 13.
[D+57] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ3 (Overloading, String, Array) ๊ตญ๋น„์ง€์› D+57 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ3 - ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading) - ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์„ฑ์ค‘ ๋‹คํ˜•์„ฑ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ค‘ ํ•˜๋‚˜๋กœ ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์†Œ๋“œ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ด๋‹ค. - ์˜ค๋ฒ„๋กœ๋”ฉ์„ ํ†ตํ•ด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•จ์ˆ˜์˜ ์ด๋ฆ„๋งŒ ๊ฐ€์ง€๊ณ  ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŒŒ๋ผ๋ฏธํ„ฐ๋„ ํ™•์ธํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ํŠน์ง• - ๋ฉ”์†Œ๋“œ์˜ "ํŒŒ๋ผ๋ฏธํ„ฐ"๋กœ ๊ตฌ๋ณ„ํ•˜์—ฌ ํ˜ธ์ถœํ•œ๋‹ค. - ๋ฆฌํ„ดํ˜•๋งŒ ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. - ๊ณผ๋„ํ•œ ์˜ค๋ฒ„๋กœ๋”ฉ์€ ์˜คํžˆ๋ ค ๊ฐ€๋…์„ฑ์„ ์ €ํ•ด์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. - ์• ๋งคํ•œ ์˜ค๋ฒ„๋กœ๋”ฉ์€ ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. (ex. ์˜ค๋ฒ„๋กœ๋”ฉ์ƒ์„ฑ์ž์ค‘ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™๊ณ  ๊ฐ™์€ ํƒ€์ž…์ธ ์ƒ์„ฑ์ž๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ) String ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค๋กœ ์ข…๋ฃŒ๋ฌธ์ž(null๋ฌธ์ž, ์ผ๋ฐ˜์ ์œผ๋กœ 0x00)๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์˜ ์ง‘ํ•ฉ์„.. 2022. 12. 12.
[D+57] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ2 (์ •๋ณด์€๋‹‰๊ณผ ์บก์Šํ™”, ํด๋ž˜์Šค ๋ณ€์ˆ˜์™€ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ) ๊ตญ๋น„์ง€์› D+57 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ2 - ์ •๋ณด์€๋‹‰๊ณผ ์บก์Šํ™” • ์ •๋ณด์€๋‹‰ ์ •๋ณด์€๋‹‰์€ ํด๋ž˜์Šค์˜ ๋ฐ์ดํ„ฐ๋‚˜ ๊ธฐ๋Šฅ์„ ์ˆจ๊ธฐ๊ฑฐ๋‚˜ ๊ณต๊ฐœํ•˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์„ฑ์„ ์˜๋ฏธํ•œ๋‹ค. ํ•„์š”์„ฑ - ๋ณด์•ˆ์„ฑ : ๊ณต๊ฐœ๋ฅผ ํ•˜์ง€ ์•Š์•„์•ผ ํ•  ๋ฐ์ดํ„ฐ์˜ ๋ณดํ˜ธ - ์‚ฌ์šฉ์„ฑ : ๊ณต๊ฐœํ•œ ๋ฐ์ดํ„ฐ๋‚˜ ๊ธฐ๋Šฅ๋“ค๋งŒ ์‚ฌ์šฉ - ์ผ๊ด€์„ฑ : ์ •ํ•ด์ง„ ๋ฐฉ์‹์œผ๋กœ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผ - ํ™•์žฅ์„ฑ : ํด๋ž˜์Šค์˜ ํ™•์žฅ์‹œ ์ •๋ณด์€๋‹‰์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™•์žฅ(์ƒ์† ๋ฉ”์นด๋‹ˆ์ฆ˜) ์ •๋ณด์€๋‹‰์˜ ๋ฐฉ๋ฒ• (Access-Level Modifier) • ์บก์Šํ™” - ๊ด€๋ จ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฌถ์–ด ํด๋ž˜์Šค๋ฅผ ์กฐ์งํ•˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์„ฑ์ด๋‹ค. - ์บก์Šํ™”๋Š” ์ •๋ณด์€๋‹‰๊ณผ ํ•จ๊ป˜ ์ด๋ฃจ์–ด์ง„๋‹ค. - ์บก์Šํ™”๋Š” ์™„์„ฑ์ด ์•„๋‹Œ ์ตœ์„ ์˜ ๊ด€์ ์œผ๋กœ ์ ‘๊ทผํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์œ ์˜์‚ฌํ•ญ - ๋‹จ์ผ ๋ชฉ์ ์„ฑ : ํ•˜๋‚˜์˜ ๋ชฉ์ (์—ญํ• )์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํด๋ž˜์Šค๋ฅผ ์กฐ์ง - ์ •๋ณด์€๋‹‰ : .. 2022. 12. 9.
[D+56] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ2 (ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค, ํŒจํ‚ค์ง€) ๊ตญ๋น„์ง€์› D+56 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ2 - ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค • ํด๋ž˜์Šค ํ”„๋กœ๊ทธ๋žจ์€ ๋ฐ์ดํ„ฐ์™€ ํ•จ์ˆ˜์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํด๋ž˜์Šค๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์—ฐ๊ด€๋˜์–ด ์žˆ๋Š” ์ž๋ฃŒ(Data)์™€ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ(Method)๊ฐ€ ๋ชจ์—ฌ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ํ˜• ๋ฐ์ดํ„ฐํƒ€์ž…์ด๋‹ค. - Class = Data + Method - Data : ํ”„๋กœ๊ทธ๋žจ์—์„œ ์œ ์น˜, ๊ด€๋ฆฌํ•ด์•ผํ•  ๋ฐ์ดํ„ฐ, Attribute๋ผ๊ณ ๋„ ํ•œ๋‹ค. - Method : Data๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ํ•จ์ˆ˜ • ์ธ์Šคํ„ด์Šค - ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด ๊ตฌ์กฐํ™”๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋Ÿญ์„ ์˜๋ฏธํ•˜๋ฉฐ Object๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. - ์ธ์Šคํ„ด์Šค๋Š” ๋ชจ๋“  ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๊ฐ€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ ์œ ์‚ฌ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๋ชฉ์  ๊ฐ์ฒด์ง€ํ–ฅ์€ ๋Œ€์ฒด์ ์œผ๋กœ ์†Œ์Šค๊ฐ€ ๋ณผ๋ฅจ์ด ์žˆ์–ด์•ผ ์˜๋ฏธ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— .. 2022. 12. 9.
[D+56] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ1 (์‹คํ–‰ ํ๋ฆ„ ์ œ์–ด, ๋ฉ”์†Œ๋“œ์™€ ๋ณ€์ˆ˜์˜ ์Šค์ฝ”ํ”„) ๊ตญ๋น„์ง€์› D+56 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ1 - ์‹คํ–‰ ํ๋ฆ„ ์ œ์–ด • ์กฐ๊ฑด๋ฌธ // if๋ฌธ if(Boolean-expression){ ... } // if-else๋ฌธ (else๋Š” ์ƒ๋žตํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ƒ๋žต๊ฐ€๋Šฅ) if(Boolean-expression){ ... } else { ... } // if-else if๋ฌธ if(Boolean-expression) { ... } else if(Boolean-expression) { ... } else if(Boolean-expression) { ... } else {...} ์กฐ๊ฑด๋ฌธ์—๋Š” if๋ฌธ, if-else๋ฌธ, if-else if๋ฌธ์ด ์žˆ๋‹ค. ์ด๋•Œ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์•ผ ํ•  ๊ฒƒ์€ ์กฐ๊ฑด๋ฌธ์•ˆ์—๋Š” Boolean-expression์ด ๋“ค์–ด๊ฐ„๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ Boolean-expressio.. 2022. 12. 8.
[D+55] ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ1 (๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜•, ์ƒ์ˆ˜์™€ ํ˜•๋ณ€ํ™˜, ์—ฐ์‚ฐ์ž) ๊ตญ๋น„์ง€์› D+55 - ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ1 - ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜• • ๋ณ€์ˆ˜ ๋ณ€์ˆ˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ์ด๋ฅผ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฆ„์ด๋‹ค. ex) ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ๋ฉ”๋ชจ๋ฆฌ์— a๋ผ๋Š” ์ด๋ฆ„์„ ์ง€์–ด์ฃผ์—ˆ์„ ๋•Œ a๋ฅผ ๋ณ€์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. • ์ž๋ฃŒํ˜• ์ž๋ฃŒํ˜•์€ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ˜•์‹์œผ๋กœ ํฌ๊ธฐ์™€ ๊ทœ์น™์ด ๋‚ดํฌ๋˜์–ด ์žˆ๋‹ค. int a;// size: 4byte, rule: ์ •์ˆ˜ float a;// size: 4byte, rule: ์‹ค์ˆ˜ double a;// size: 8byte, rule: ์‹ค์ˆ˜ boolean a;// size: 1byte, rule: ์ง„๋ฆฌ๊ฐ’ Student a;// size: 4byte, rule: ์ฐธ์กฐ๊ฐ’ Animal a;// size: 4byte, rule: ์ฐธ์กฐ๊ฐ’ // ์ฐธ์กฐ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š” Student a์™€ Animal.. 2022. 12. 7.