์์ ์์ฝ: Java ํด๋์ค์์ this & this() ์ดํดํ๊ธฐ
์ด ์์์ Java ํ๋ก๊ทธ๋๋ฐ์์ ์์ฃผ ์ฐ์ด๋ ํค์๋์ธย this์ **this()**์ ๋ํด ์ฝ๊ณ ์์ธํ๊ฒ ์ค๋ช
ํฉ๋๋ค.
this๋ 'ํ์ฌ ๊ฐ์ฒด ์์ '์ ๊ฐ๋ฆฌํค๋ ํค์๋์ด๊ณ , **this()**๋ ์์ฑ์ ์์์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ๋ ์ฐ๋ ํน๋ณํ ๋ฉ์๋์
๋๋ค.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
this ํค์๋๋? [00:00:01]
โข
this๋ ์์ด๋ก '์ด๊ฒ'์ด๋ผ๋ ๋ป์ผ๋ก, ์๋ฐ์์ย ํ์ฌ ๊ฐ์ฒด ์์ ์ ๊ฐ๋ฆฌํค๋ ํค์๋์
๋๋ค.
โข
์๋ฅผ ๋ค์ด, ํด๋์ค ์์์ ๋ณ์๋ ๋ฉ์๋๊ฐ ์ฌ๋ฌ ๊ฐ ์์ ๋,ย this๋ฅผ ๋ถ์ด๋ฉด '๋ด๊ฐ ์ง๊ธ ๋งํ๋ ๊ฑด ์ด ๊ฐ์ฒด์ ๋ณ์๋ค!' ๋ผ๊ณ ๋ช
ํํ ์๋ ค์ฃผ๋ ์ญํ ์ ํด์.
this์ ํ์์ฑ - ๋ณ์ ์ด๋ฆ ์ถฉ๋ ํด๊ฒฐ [00:00:57]
โข
ํด๋์ค ๋ฉค๋ฒ ๋ณ์์ ๋ฉ์๋ ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ด ๊ฐ์ ๋ ๋๊ฐ ๋๊ตฌ์ธ์ง ํท๊ฐ๋ฆด ์ ์์ด์.
โข
์) ๋ฉค๋ฒ ๋ณ์ย name๊ณผ ์์ฑ์ ๋งค๊ฐ๋ณ์ย name์ด ๊ฐ์ ๊ฒฝ์ฐ
โข
์ด๋ย this.name์ '๊ฐ์ฒด์ ๋ฉค๋ฒ ๋ณ์'๋ฅผ ์๋ฏธํ๊ณ , ๊ทธ๋ฅย name์ '๋งค๊ฐ๋ณ์'๋ฅผ ๋ปํฉ๋๋ค.
โข
๊ทธ๋์ย this.name = name;ย ์ '๋งค๊ฐ๋ณ์ name ๊ฐ์ ๊ฐ์ฒด ๋ฉค๋ฒ ๋ณ์ name์ ๋ฃ๊ฒ ๋ค'๋ ๋ป์ด์์.
์์ฑ์์์ this ์ฌ์ฉ ์์ [00:02:18]
โข
์์ฑ์์์ ๋งค๊ฐ๋ณ์์ ๋ฉค๋ฒ ๋ณ์ ์ด๋ฆ์ด ๊ฐ์ ๋, this๋ฅผ ๋ถ์ฌ์ ๊ตฌ๋ถํฉ๋๋ค.
โข
์์:
public Student(String name) {
this.name = name; // this.name์ ๋ฉค๋ฒ ๋ณ์, ์ค๋ฅธ์ชฝ name์ ๋งค๊ฐ๋ณ์
}
Java
๋ณต์ฌ
this ์ฌ์ฉ ์ ์ฃผ์์ฌํญ๊ณผ ์๋ ์์ฑ ์ฝ๋ [00:03:41]
โข
์ดํด๋ฆฝ์ค ๊ฐ์ IDE๋ ์์ฑ์ ์๋ ์์ฑ ์ย this๋ฅผ ์๋์ผ๋ก ๋ถ์ฌ์ค๋๋ค.
โข
๋ง์ฝ this๋ฅผ ์ ๋ถ์ด๋ฉด '๋ณ์ ํ ๋น์ด ํจ๊ณผ ์๋ค'๋ ๊ฒฝ๊ณ ๊ฐ ๋จ๋ ๊ผญ ์จ์ผ ํด์.
this() ๋ฉ์๋ - ์์ฑ์ ๊ฐ ํธ์ถํ๊ธฐ [00:04:30]
โข
*this()**๋ ์์ฑ์ ์์์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ๋ ์ฐ๋ ํน๋ณํ ๋ฉ์๋์
๋๋ค.
โข
์๋ฅผ ๋ค์ด, ์ฌ๋ฌ ์์ฑ์๊ฐ ์์ ๋ ์ค๋ณต ์ฝ๋๋ฅผ ์ค์ด๊ณ ์ถ์ผ๋ฉด, ํ ์์ฑ์์์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ์ ์์ด์.
โข
๊ท์น:
1.
์์ฑ์ ์์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
2.
๋ฐ๋์ ์ฒซ ๋ฒ์งธ ๋ฌธ์ฅ์ ์์ผ ํจ
3.
๊ฐ์ ํด๋์ค ๋ด ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉ
this()๋ฅผ ํ์ฉํ ์ฝ๋ ๊ฐ๊ฒฐํ ์์ [00:05:37]
โข
์์:
public Student() {
this("์ด๋ฆ์์", 0, 0, "์์"); // ๋ค๋ฅธ ์์ฑ์ ํธ์ถ
}
public Student(String name, int age, int number, String major) {
this.name = name;
this.age = age;
this.number = number;
this.major = major;
}
Java
๋ณต์ฌ
โข
์ด๋ ๊ฒ ํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ง ์์ฑ์๊ฐ ๋ชจ๋ ์ด๊ธฐํ ์์
์ ๋ง์ง๋ง ์์ฑ์์ ๋งก๊ธฐ๋ฉด์ ์ฝ๋๊ฐ ๊น๋ํด์ง๋๋ค.
๋ง๋ฌด๋ฆฌ ๋ฐ ํ
์คํธ [00:08:35]
โข
this์ this()๋ฅผ ์ ํ์ฉํ๋ฉด ๊ฐ์ฒด ๋ณ์์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ช
ํํ ๊ตฌ๋ถํ๊ณ , ์์ฑ์ ๊ฐ ์ค๋ณต ์ฝ๋๋ฅผ ์ค์ผ ์ ์์ด์.
โข
์์์์ ์ค๋ช
ํ ๋ด์ฉ์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์คํํด๋ณด๋ฉด ์ดํด๊ฐ ๋ ์ฌ์์ง๋๋ค!
์ ๋ฆฌ
โข
this๋ 'ํ์ฌ ๊ฐ์ฒด ์์ '์ ๊ฐ๋ฆฌํค๋ ํค์๋๋ก, ๋ณ์ ์ด๋ฆ์ด ๊ฒน์น ๋ ๋ฉค๋ฒ ๋ณ์๋ฅผ ๋ช
ํํ ๊ตฌ๋ถํด์ค๋๋ค.
โข
*this()**๋ ์์ฑ์ ์์์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ๋ ์ฐ๋ ๋ฉ์๋๋ก, ์ฝ๋ ์ค๋ณต์ ์ค์ด๊ณ ๊น๋ํ๊ฒ ๋ง๋ค์ด์ค๋๋ค.
โข
๋ ํค์๋๋ฅผ ์ ํ์ฉํ๋ฉด Java ํด๋์ค ์์ฑ์ด ํจ์ฌ ํธ๋ฆฌํด์ง๋๋ค!
์์ ๋ณด์๊ณ ์ง์ ์ฝ๋ฉํด๋ณด๋ฉด์ ์ตํ๋ณด์ธ์! ๊ถ๊ธํ ์ ์์ผ๋ฉด ์ธ์ ๋ ์ง๋ฌธํด ์ฃผ์ธ์~ 