this
๋ฐ
super
ํด๋์ค์ ํด๋น ์ํผํด๋์ค์ ํ์ฌ ์ธ์คํด์ค๋ฅผ ๊ฐ๊ฐ ๋ํ๋ด๋ Java์ ๋ ๊ฐ์ง ํน์ ํค์๋์
๋๋ค. Java ํ๋ก๊ทธ๋๋จธ๋ ์ข
์ข
์ด๋ฌํ ๋จ์ด๋ฅผ ํผ๋ํ๊ณ Java Core ์ธํฐ๋ทฐ์์ ์์ฃผ ์ง๋ฌธ๋๋ ํน์ ์์ฑ์ ๋ํด ๊ฑฐ์ ์ธ์ํ์ง ๋ชปํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฆ์ ๋ ์ค๋ฅด๋ ๋ช ๊ฐ์ง ์ง๋ฌธ์
this
๋ฐ , Java์์
super
ํค์๋์ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ํ ๋นํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น ? ํค์๋ ์ Java์
this
์ฐจ์ด์ ์ ๋ฌด์์
๋๊น ? ๋ชจ๋ฅธ๋ค? ๊ธ์, ์ฌ๊ธฐ์ ๋ต์ ์ ์ํ๋ ๊ฒ์ ์๋๋๋ค. ๊ธฐ์ฌ ๋ ๋ถ๋ถ์์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฒ์์ ๋งํ๋ฏ์ด Java ์ Java์ ์ฃผ์ ์ฐจ์ด์ ์ ํด๋์ค์ ํ์ฌ ์ธ์คํด์ค๊ฐ ํ์๋๊ณ ์์ ํด๋์ค์ ํ์ฌ ์ธ์คํด์ค๊ฐ ํ์๋๋ค๋ ๊ฒ์
๋๋ค. ๋ค์์ ๋ณ์ ๋ฅผ ์ฌ์ฉํ๋ ํ ๊ฐ์ง ์์
๋๋ค . ์์ ์์ฑ์๋ฅผ ํธ์ถํ๋ ์๋ฅผ ์ด๋ฏธ ๋ณธ ์ ์ด ์์ ๊ฒ์
๋๋ค. ์ฒด์ธ์์ ์์ฑ์๋ฅผ ํธ์ถํ๋ ๊ฒ์ ํค์๋ ๋ฐ ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฅํฉ๋๋ค . ํด๋์ค ๋ด๋ถ์์๋ ์ธ์ ์๋ ์์ฑ์๋ฅผ ํธ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ , ์ธ์ ์๋ ์์ฑ์๋ฅผ ํธ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๊ฑฐ๋ ๋ถ๋ชจ ํด๋์ค์ ๊ธฐ๋ณธ ์์ฑ์๋ผ๊ณ ๋ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ธ์ ์์ด ์์ฑ์๋ฟ๋ง ์๋๋ผ ์ ์ ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ์ฌ ๋ค๋ฅธ ์์ฑ์๋ ํธ์ถํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ณง ์ด ์ฌ์ฉ๋ฒ ์ ์๋ฅผ ๋ณด๊ฒ ๋ ๊ฒ์
๋๋ค . ๋ํ Java ์์๋ ํด๋์ค ์ธ์คํด์ค์ ํด๋น ๋ถ๋ชจ์ ๋ณ์์ ์ก์ธ์คํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ค์ ๋ก ์ ๋์ฌ ๋ฐ ์์ด ์ก์ธ์คํ ์ ์์ง๋ง ํ์ฌ ๋ธ๋ก์์ ํด๋น ๋ณ์๊ฐ ๋ค๋ฅธ ๋ณ์์ ๊ฒน์น์ง ์๋ ๊ฒฝ์ฐ์๋ง ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ์ง์ญ ๋ณ์๊ฐ ํฌํจ๋์ด ์์ง ์์ผ๋ฉด ์ ๋์ฌ๊ฐ ์๋ ์ด๋ฆ์ ์ฌ์ฉํด์ผ ํ์ง๋ง ์ด๋ ์ค์ํ์ง ์์ต๋๋ค. ์ด ํ์์์๋ ํจ์ฌ ๋ ์ฝ๊ธฐ ์ฝ์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ ํ์ ์ธ ์๋ ์ธ์คํด์ค ๋ณ์์ ๋์ผํ ์ด๋ฆ์ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ์์ฑ์ ๋ด์์ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ์ด ๊ธฐ์ฌ์ ๋ท๋ถ๋ถ์์ ์ ์ฌ์ด์ ๋ค๋ฅธ ์ฐจ์ด์ ์ด ๋ฌด์์ธ์ง ์์๋ณด๊ณ ๋ช ๊ฐ์ง ์ฌ์ฉ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
this
super
this
super
this
super
this
super
this
super
this()
super()
this
super
this
super
super
this
this
super
this
this์ super์ ์ ์ฌ์
this
ํค์๋ ์ ์ ์ฐจ์ด์ ์ ์ดํด๋ณด๊ธฐ ์ ์
super
๋ช ๊ฐ์ง ์ ์ฌ์ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
this
, ๋ฐ ๋ชจ๋ super
๋น์ ์ ๋ณ์์ด๋ฏ๋ก ์ ์ ์ปจํ
์คํธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฆ, ๊ธฐ๋ณธ ๋ฉ์๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. this
์ด๋ก ์ธํด " ์ ์ ์ปจํ
์คํธ์์ ๋น์ ์ ๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค."๋ผ๋ ์ปดํ์ผ ํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค . ๊ธฐ๋ณธ ๋ฉ์๋์์ ํค์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋์ผํ ์ผ์ด ๋ฐ์ํฉ๋๋ค super
.
this
, ๋ฐ ๋ชจ๋ super
์์ฑ์ ๋ด๋ถ์์ ์ฒด์ธ์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด this
() ๋ฐ super
()๋ ๊ฐ๊ฐ ์์ ํด๋์ค์ ๋ถ๋ชจ ํด๋์ค์ ์ธ์ ์์ด ์์ฑ์๋ฅผ ํธ์ถํฉ๋๋ค.
์๋ ์์ ์์๋ ๋จผ์ ํด๋์ค B์ ์ธ์ ์๋ ์์ฑ์์์ type ์ ๋จ์ผ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋์ผํ ํด๋์ค B์ ์์ฑ์์ ํธ์ถ์ ์ ๋ฌํฉ๋๋ค.
String
๊ทธ๋ฌ๋ฉด ์ด ์์ฑ์๋ ์ฐจ๋ก๋ก
super("")
์ํผ ํด๋์ค์์ ๋จ์ผ ์ธ์ ์์ฑ์๋ฅผ ํธ์ถํฉ๋๋ค.
class A{
A(){
System.out.println("ะะพะฝััััะบัะพั ะฑะตะท ะฐัะณัะผะตะฝัะพะฒ ะบะปะฐััะฐ A");
}
A(String args){
System.out.println("ะะพะฝััััะบัะพั ั ะพะดะฝะธะผ ะฐัะณัะผะตะฝัะพะผ ะบะปะฐััะฐ A");
}
}
class B extends A{
B(){
this("");
System.out.println("ะะพะฝััััะบัะพั ะฑะตะท ะฐัะณัะผะตะฝัะพะฒ ะบะปะฐััะฐ B");
}
B(String args){
super("");
System.out.println("ะะพะฝััััะบัะพั ั ะพะดะฝะธะผ ะฐัะณัะผะตะฝัะพะผ ะบะปะฐััะฐ B");
}
}
public class Test {
public static void main(String args[]) {
B b = new B();
}
}
์ถ๋ ฅ: ํด๋์ค A์ ๋จ์ผ ์ธ์ ์์ฑ์ ํด๋์ค B์ ๋จ์ผ ์ธ์ ์์ฑ์ ํด๋์ค B์ ์ธ์ ์๋ ์์ฑ์
- ์์ฑ์ ๋ด์์
this
๋ฐ ๋ super
๋ค๋ฅธ ๋ชจ๋ ํํ์ ์์ ๋งจ ์ฒ์์ ๋ํ๋์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ปดํ์ผ๋ฌ์์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ๋ฐ๋ผ์ ํ๋์ ์์ฑ์์๋ this()
, ๋ฐ ๊ฐ ๋ชจ๋ ํฌํจ๋ ์ ์์ต๋๋ค super()
.
์ํผ์ ์ด๊ฒ์ ์ฐจ์ด์
์ด์ ์ฐ๋ฆฌ๋ ํค์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
super
๊ณผ
this
ํค์๋๊ฐ ํ์ํ ๊ฒ์ด ๋ฌด์์ธ์ง ์ดํดํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ด๊ฐ ์ธ๊ธํ์ง ์์ ์ด๋ฌํ ํค์๋๋ฅผ ์ฌ์ฉํ๋ ๋ ๋ค๋ฅธ ์ต์
์ด ์์ต๋๋ค. ๋ด๋ถ ํด๋์ค์๋ ์ด๋ฌํ ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ Outer ํ๊ธฐ๋ฒ ํ์์ ์ฌ์ฉํ์ฌ ์ธ๋ถ ํด๋์ค๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์ด ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค.
this
ํ์ฌ ์ธ์คํด์ค์ ์ธ๋ถ์ ๋ํด.
super
- ๊ทธ์ ๋ถ๋ชจ๋์ ์ํด. Outer๋ฅผ ์ธ๋ถ ํด๋์ค์ ์ด๋ฆ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค.
this
์ด์ ํค์๋ ์ ํค์๋์ ์ฃผ์ ์ฐจ์ด์ ์ ๊ฐ๋ตํ๊ฒ ๋์ดํ๊ฒ ์ต๋๋ค.
super
- ๋ณ์๋ ๋ณ์
this
๊ฐ ์ฌ์ฉ๋๋ ํด๋์ค์ ํ์ฌ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ๋ ๋ฐ๋ฉด super
์์ ํด๋์ค์ ํ์ฌ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํฉ๋๋ค.
- ๊ฐ ์์ฑ์๋ ๋ค๋ฅธ ์์ฑ์๋ฅผ ๋ช
์์ ์ผ๋ก ํธ์ถํ์ง ์๋ ๊ฒฝ์ฐ
super()
์์ ํด๋์ค์ ์ธ์๊ฐ ์๋ ์์ฑ์๋ฅผ ์์์ ์ผ๋ก ํธ์ถํ์ง๋ง ํญ์ ๋๋ this()
๋๋ ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์์ฑ์๋ฅผ ๋ช
์์ ์ผ๋ก ํธ์ถํ ์ ์๋ ์ต์
์ด ์์ต๋๋ค super()
.
this
์ด๊ฒ์ด ์๋ง๋ ํค์๋ ์ Java ์ ์ฐจ์ด์
super
๋ฐ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ ๋ฐฉ์์ ๋ํด ๋งํ ์ ์๋ ์ ๋ถ์ผ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ณธ ๊ฒ์ฒ๋ผ ์ด๋ค์ ์ฃผ์ ๋ชฉ์ ์ ํ๋์ ์์ฑ์๋ฅผ ๋ค๋ฅธ ์์ฑ์์์ ํธ์ถํ๊ณ ํ์ฌ ํด๋์ค์ ํด๋น ๋ถ๋ชจ ํด๋์ค์ ์ ์ธ๋ ์ธ์คํด์ค ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์
๋๋ค. ์ด๊ฒ์ด ์ ํํ ์ผ๋ฐ์ ์ธ ๋ณ์๊ฐ ์๋๋ผ๋ ์ ์ ์์ง ๋ง์ญ์์ค. ์ด์ ์ฒซ ๋ฒ์งธ ๋จ๋ฝ์์ ๋ฌผ์๋ ๋ด ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์
๋๋ค. ์๋์, ๋ณ์๋
this
final๋ก ์ ์ธ๋์๊ธฐ ๋๋ฌธ์ ์ ๊ฐ์ ํ ๋นํ ์ ์์ต๋๋ค. IDE์์ ์ด ์์
์ ์๋ํ ์ ์์ต๋๋ค. "๋ณ์์ ์ ๊ฐ์ ํ ๋นํ ์ ์์ต๋๋ค. ๋ณ์
this
๊ฐ ์ต์ข
์ผ๋ก ์ ์ธ๋์์ต๋๋ค."๋ผ๋ ์ปดํ์ผ ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค.
์๋ณธ ๊ธฐ์ฌ๋ ์ฌ๊ธฐ์ ์์ต๋๋ค .
GO TO FULL VERSION