๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
FOR SW ENGINEER๐Ÿ‘ฉ‍๐Ÿ’ป/JAVA

๊ตญ๋น„JAVA์ˆ˜์—… DAY-12

by ์”จ๋‹ˆ 2021. 9. 1.
728x90

๊ตญ๋น„ ์ž๋ฐ”์ˆ˜์—… 12์ผ์ฐจ!!

์˜ค๋Š˜์€ this์™€ super์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋‹ค!

๊ทธ๋Ÿผ 12์ผ์ฐจ ์š”์  ์‹œ์ž‘~~๐Ÿ™Œ

 

 

1. this

- ์ž๊ธฐ ์ž์‹  ๊ฐ์ฒด๋ฅผ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ.

- this. ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋™์ผ ํด๋ž˜์Šค ๋‚ด์˜ ๋ฉค๋ฒ„(๋ฉค๋ฒ„๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ)๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Œ.

- this()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์„ฑ์ž ๋‚ด๋ถ€์—์„œ ์ž์‹ ์ด ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ.

์ตœ์ƒ์œ„ ๋ถ€๋ชจ ํด๋ž˜์Šค Person

Personํด๋ž˜์Šค๋Š” ์ž๊ธฐ์ž์‹ ์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ thisํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด์˜ ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋น„๊ตํ•จ.

Person์„ ์ƒ์†๋ฐ›์€ Student ํด๋ž˜์Šค
Person์„ ์ƒ์†๋ฐ›์€ Teacherํด๋ž˜์Šค
Person์„ ์ƒ์†๋ฐ›์€ Employeeํด๋ž˜์Šค

์œ„์—์„œ Personํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์€ Student, Teacher, Employee๋Š”

Person์—์„œ ์ƒ์†๋ฐ›์€ name, age์™€ ์ž์‹ ์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ

thisํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ž์‹ ๋“ค์˜ ํด๋ž˜์Šค ๋‚ด ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋น„๊ตํ•จ.

 

==>์œ„์˜ ์˜ˆ์ œ๋“ค์„ ํ†ตํ•ด this.๋กœ ์ž์‹ ์˜ ํด๋ž˜์Šค๋‚ด ์ž์‹ ์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ณ 

this()๋กœ ์ž์‹ ์˜ ํด๋ž˜์Šค ๋‚ด ์ž์‹ ์˜ ์ƒ์„ฑ์ž์˜ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•จ์„ ์•Œ์ˆ˜์žˆ๋‹ค.

==> ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋ฉค๋ฒ„๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ• ๋•Œ this.๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.   

 

 

2. super

- ํ•œ๋‹จ๊ณ„ ์œ„ ๋ถ€๋ชจํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ

- super.์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ถ€๋ชจํด๋ž˜์Šค ๋ฉค๋ฒ„๋ฅผ ์ฐธ์กฐํ• ์ˆ˜ ์žˆ์Œ.

- super()๋Š” ์ƒ์„ฑ์ž ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ, ๋ถ€๋ชจํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ ์‚ฌ์šฉ.

- ์ƒ์„ฑ์ž ์ฒซ ๋ผ์ธ์—๋Š” ๋ฐ˜๋“œ์‹œ this(), super()์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ ์ด๋ฅผ ๊ธฐ์ˆ ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฌต์‹œ์ ์œผ๋กœ super()์‚ฝ์ž…๋˜์–ด ๋ถ€๋ชจํด๋ž˜์Šค ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ž๋™ ํ˜ธ์ถœ

- ์ƒ์„ฑ์ž ๋‚ด๋ถ€์—์„œ ๋˜๋‹ค๋ฅธ ์ƒ์„ฑ์ž ํ˜ธ์ถœํ•  ๋•Œ (this(), super())๋ฐ˜๋“œ์‹œ ์ƒ์„ฑ์ž ๋ธ”๋ก ๋‚ด๋ถ€ ์ฒซ ๋ผ์ธ์— ๊ธฐ์ˆ  ํ•ด์•ผํ•จ.

- ์ž๋ฐ” ๊ณ„์ธต ๊ตฌ์กฐ๋Š” super()๋ฅผ ํ†ตํ•œ ํ˜ธ์ถœ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Œ.

์ตœ์ƒ์œ„ ๋ถ€๋ชจ ํด๋ž˜์Šค Person
super()๋ฅผ ์‚ฌ์šฉํ•ด Personํด๋ž˜์Šค์˜ Person()๋ฉ”์„œ๋“œ์˜ ๊ธฐ๋Šฅ์„ ๋ฐ›์•„์˜ด.
Person(String name, int age)๋ฉ”์„œ๋“œ --> super(name, age)  &  Personํด๋ž˜์Šค์˜ String info()๋ฉ”์„œ๋“œ --> super.info()
super(name,age)๋ฅผ ์‚ฌ์šฉํ•ด Personํด๋ž˜์Šค์˜ Person(String name, int age)๊ธฐ๋Šฅ ๋ฐ›์•„์˜ด.
super(name, age)๋ฅผ ์‚ฌ์šฉํ•ด์„œ Personํด๋ž˜์Šค์˜ Person(String name, int age)๊ธฐ๋Šฅ ๋ฐ›์•„์˜ด.

์œ„์˜ ํด๋ž˜์Šค๋“ค์„ ์‚ฌ์šฉํ•˜๋Š” MAIN๋ฌธ์„ ์‹คํ–‰ํ•ด๋ณด๋ฉด

Studentํด๋ž˜์Šค๋Š” Perseon(String name, int age) ๋ฉ”์„œ๋“œ์˜ ๊ธฐ๋Šฅ์„์‹คํ–‰ํ•˜์—ฌ

์ด๋ฆ„๊ณผ ๋‚˜์ด, ํ•™๋ฒˆ๊นŒ์ง€ ๊ฐ’์„ ๋ฐ›๊ณ  print๋ฌธ์žฅ์„ ์‹คํ–‰ํ•จ.

Motherํด๋ž˜์Šค๋Š” Person() ๋ฉ”์„œ๋“œ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜์—ฌ ๊ฐ’์„ ๋ฐ›์ง€์•Š๊ณ 

Person()๋ฉ”์„œ๋“œ์•ˆ์˜ this("๋ฏธ์ •",1)์„ ์‹คํ–‰ํ•จ.

728x90