๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

FOR SW ENGINEER๐Ÿ‘ฉ‍๐Ÿ’ป/JAVA22

JAVA _๋‹คํ˜•์„ฑ(Polymorphism) โ˜…๋‹คํ˜•์„ฑโ˜… 1.๋‹คํ˜•์„ฑ์ด๋ž€ - ๋‹คํ˜•์„ฑ์ด๋ž€ : ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค, ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ. - ๋‹คํ˜•์„ฑ์€ ์ƒ์†์„ ์ „์ œ์กฐ๊ฑด์œผ๋กœ ํ•จ. - ๋‹คํ˜•์„ฑ์„ ์œ„ํ•ด ์ž๋ฐ”๋Š” ์ž์‹ํด๋ž˜์Šค๊ฐ€ ๋ถ€๋ชจํด๋ž˜์Šค ํƒ€์ž…์„ ๊ฐ€์งˆ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•จ. ์ฆ‰, ๋ถ€๋ชจ ํƒ€์ž…์— ๋ชจ๋“  ์ž์‹๊ฐ์ฒด๊ฐ€ ๋Œ€์ž…๋ ์ˆ˜ ์žˆ์Œ. โ–ถ๋‹คํ˜•์„ฑ ์˜ˆ์‹œ //ํด๋ž˜์ŠคA์™€ A๋ฅผ ์ƒ์†๋ฐ›๋Š” B์™€Cํด๋ž˜์Šค class A{} class B extends A{} class C extends A{} public class Poly{ //ํด๋ž˜์Šคํƒ€์ž… ๋ฉค๋ฒ„๋ณ€์ˆ˜ A a = new A(); B b = new B(); //๋‹คํ˜•์„ฑ A a1 = b; // A a1 = new B(); // B -> Aํ˜• ๋ฐ˜ํ™˜ // ๋ถ€๋ชจ ํƒ€์ž…A์— ์ž์‹ํƒ€์ž… B๋Œ€์ž… // ์ž์‹ํด๋ž˜์Šค๊ฐ€ ๋ถ€๋ชจํด๋ž˜์Šค ํƒ€์ž…์„ ๊ฐ€์ง€๊ฒŒ๋จ. A.. 2021. 9. 9.
๊ตญ๋น„JAVA์ˆ˜์—… DAY-13 ๊ตญ๋น„ JAVA 13์ผ์ฐจ ์ˆ˜์—…!! ์˜ค๋Š˜์€ ์ ‘๊ทผ์ œํ•œ์ž์™€ ์€๋‹‰(Getter, Setter)์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋‹ค! ๊ทธ๋Ÿผ 13์ผ์ฐจ ์š”์ ์‹œ์ž‘~~!๐Ÿ™Œ 1.์ ‘๊ทผ์ œํ•œ์ž - ์ ‘๊ทผ ์ œํ•œ์ž๋Š” ํด๋ž˜์Šค์™€ ๋ฉค๋ฒ„๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž์˜ ์ ‘๊ทผ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์ œํ•œ์ž. - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํด๋ž˜์Šค๋ฅผ ์„ค๊ณ„ ํ•  ๋•Œ ์™ธ๋ถ€ ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉค๋ฒ„์™€ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๋ฉค๋ฒ„๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ๋ณ€์ˆ˜, ์ƒ์„ฑ์ž, ๋ฉ”์„œ๋“œ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•จ. - ์™ธ๋ถ€์—์„œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ง‰๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ๊ฐ์ฒด ํŠน์ • ๋ฐ์ดํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋ฉค๋ฒ„๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ง‰๋Š”๊ฒƒ์ด ์ ‘๊ทผ ์ œํ•œ์ž์˜ ์—ญํ• . - ํด๋ž˜์Šค์—๋Š” ์ ‘๊ทผ์ œํ•œ์ž๋ฅผ public๊ณผ default๋งŒ ๋ถ™์ผ ์ˆ˜ ์žˆ์Œ. โ–ถ public : ๊ฐ™์€ ํด๋ž˜์Šค, ํŒจํ‚ค์ง€, ๋‹ค๋ฅธํŒจํ‚ค์ง€๋ฅผ ๋ง‰๋ก ํ•˜๊ณ  ์ ‘๊ทผ ๊ฐ€๋Šฅ โ–ถ pro.. 2021. 9. 2.
๊ตญ๋น„JAVA์ˆ˜์—… DAY-12 ๊ตญ๋น„ ์ž๋ฐ”์ˆ˜์—… 12์ผ์ฐจ!! ์˜ค๋Š˜์€ this์™€ super์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋‹ค! ๊ทธ๋Ÿผ 12์ผ์ฐจ ์š”์  ์‹œ์ž‘~~๐Ÿ™Œ 1. this - ์ž๊ธฐ ์ž์‹  ๊ฐ์ฒด๋ฅผ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ. - this. ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋™์ผ ํด๋ž˜์Šค ๋‚ด์˜ ๋ฉค๋ฒ„(๋ฉค๋ฒ„๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ)๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Œ. - this()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์„ฑ์ž ๋‚ด๋ถ€์—์„œ ์ž์‹ ์ด ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ. Personํด๋ž˜์Šค๋Š” ์ž๊ธฐ์ž์‹ ์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ thisํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด์˜ ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋น„๊ตํ•จ. ์œ„์—์„œ Personํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์€ Student, Teacher, Employee๋Š” Person์—์„œ ์ƒ์†๋ฐ›์€ name, age์™€ ์ž์‹ ์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ thisํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ž์‹ ๋“ค์˜ ํด๋ž˜์Šค ๋‚ด ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋น„๊ตํ•จ. ==>์œ„์˜ ์˜ˆ์ œ๋“ค์„ ํ†ตํ•ด this.๋กœ ์ž์‹ .. 2021. 9. 1.
๊ตญ๋น„JAVA์ˆ˜์—… DAY-11(2) ๊ตญ๋น„์ˆ˜์—… 11์ผ์ฐจ ๋‘๋ฒˆ์งธ!! ์ด๋ฒˆ ๋กœ๊ทธ์—์„œ๋Š” 11์ผ์ฐจ ๋‘๋ฒˆ์งธ๋กœ ์•ž์—์„œ ์ •๋ฆฌํ•˜์ง€ ๋ชปํ–ˆ๋˜ ์ƒ์†(Inheritance), ์˜ค๋ฒ„๋ผ์ด๋”ฉ(Overriding), ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading)์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค! ๊ทธ๋Ÿผ ์š”์  ์‹œ์ž‘~~!!๐Ÿ™Œ 1. ์ƒ์†(Inheritance) - ๊ธฐ์กด์˜ ํด๋ž˜์Šค ํ™•์žฅํ•ด ์ƒˆ๋กœ์šด ํด๋ž˜์Šค ์ด๋Œ์–ด ๋‚ด๋Š” ๊ฒƒ. - ๊ธฐ์กด์˜ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋‹จ์ˆœ์„ฑ, ๊ฐ€๋…์„ฑ ๋†’์ž„. - ๋‹จ์ผ์ƒ์†๋งŒ ์ง€์›. - ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์† ๋ฐ›์•„ ๋งŒ๋“ค์–ด์ง€๋ฉด, ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„ ํด๋ž˜์Šค๋Š” : ์ž์‹(child or sub)ํด๋ž˜์Šค. ๋ฉค๋ฒ„๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ ๋ฌผ๋ ค์ฃผ๋Š” ํด๋ž˜์Šค : ๋ถ€๋ชจ(parent or super)ํด๋ž˜์Šค. - ๋ถ€๋ชจํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ๋Š” ์ž์‹ํด๋ž˜์Šค์— ์ƒ์†๋˜์ง€๋งŒ, ๋ถ€๋ชจํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋Š” ์ƒ์†๋˜์ง€ ์•Š์Œ. - ์ƒ์† ์‚ฌ์šฉํ•˜.. 2021. 8. 28.