JavaRush์์๋ ํ์๋ค์๊ฒ ์ฒซ ๋ฒ์งธ ๊ฐ์๋ถํฐ ๋ฌธ์ ๊ทธ๋๋ก ํค์๋๋ฅผ ์๊ฐํฉ๋๋ค
๊ทธ๋ฆฌ๊ณ ์ด ๋ฉ์๋์ ๋ณ์์ ๊ฐ์ ํ ๋นํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค
์ฆ,
์๋๋ ํค์๋๊ฐ ํฌํจ๋ ํ๋ก๊ทธ๋จ ์ฝ๋์
๋๋ค
this
. ๊ทธ๋ฆฌ๊ณ ์๊ฐ์ด ์ง๋๋ฉด ๊ทธ๊ฒ์ด ๋ฌด์์ ์๋ฏธํ๋์ง ๋ถ๋ช
ํด์ง๋๋ค. ๊ทธ๋ฌ๋ ๋๋์ ๋ณด๋ฉด ๋ง์ ์ฌ๋๋ค์ ์๋ง๋ ์ค๋ซ๋์ ์ด ํต์ฌ ๋จ์ด์ ์ ์ ๊นจ๋ซ์ง ๋ชปํ๋ค๊ณ ์ค์ค๋ก์๊ฒ ์์งํ๊ฒ ๋งํ ๊ฒ์
๋๋ค. this
์ด ๊ธ์์๋ ์์ง๋ ๊ทธ๊ฒ์ ์ดํดํ์ง ๋ชปํ๋ ์ฌ๋๋ค์ ์ํด ํค์๋ ์ฌ์ฉ์ ๋ํ ๋น๋ฐ์ ๊ณต๊ฐํฉ๋๋ค ... ํ์ํฉ๋๋ค! Schildt์ Java ์ฐธ์กฐ ์์ ์ ์ ํํ๋ฉด 171ํ์ด์ง์์ this
๋ฉ์๋๊ฐ ์ด๋ฅผ ํธ์ถํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ์ ์์ผ๋ ค๋ฉด ํค์๋๊ฐ ํ์ํ๋ค๋ ๋ด์ฉ์ ์ฝ๊ฒ ๋ ๊ฒ์
๋๋ค . ์ฌ์ค ์ด๊ฒ ๋์ผ ์๋ ์๋ค. ํ์ง๋ง ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ด ํ์ํฉ๋๋ค. ์์น์ ์ผ๋ก ๋ค์ ๋ ๊ฐ์ง ๊ฒฝ์ฐ์this
์ฌ์ฉํด์ผ ํฉ๋๋ค .
- ํด๋์ค ์ธ์คํด์ค ๋ณ์์ ๋ฉ์๋/์์ฑ์ ๋ณ์์ ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ
- ํ ์ ํ์ ์์ฑ์(์: ๊ธฐ๋ณธ ์์ฑ์ ๋๋ ๋งค๊ฐ๋ณ์ํ๋ ์์ฑ์)๋ฅผ ๋ค๋ฅธ ์ ํ์์ ํธ์ถํด์ผ ํ๋ ๊ฒฝ์ฐ. ์ด๋ฅผ ๋ช ์์ ์์ฑ์ ํธ์ถ์ด๋ผ๊ณ ๋ ํฉ๋๋ค.
์์ 1 - ์ธ์คํด์ค ๋ณ์์ ๋ฉ์๋ ๋ณ์์ ์ด๋ฆ์ด ๋์ผํฉ๋๋ค.
Human
"์ด๋ฆ" ํ๋๊ฐ ์ ์๋ ํด๋์ค๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค . ๋ณ์์ ๋ํ setter๋ฅผ ๋ง๋ญ๋๋ค name
(setter๋ ๊ฝค ์๋ํ๊ณ ์ฌ๊ธฐ์๋ ํธ๋ฆญ์ด ์์ต๋๋ค). ๋ณ์๋ฅผ ๋ฉ์๋(setter)์ setName
์ ๋ฌํ๋ค๋ ์ ์ ์ ์ํ์ธ์. ) String newName
. ์ฐ๋ฆฌ๋ ์๋ก์ด ๋ณ์๋ฅผ ๋์
ํ๊ณ (์ผ๋ฐ์ ์ผ๋ก) ๋ฉ์๋์ {์ค๊ดํธ} ๋ด์์๋ง ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ์ํ๋ ๋๋ก ํธ์ถํ ์ ์์์ต๋๋ค setName
. setter์๋ ํ ์ค์ด ์์ต๋๋ค.
name = newName;
์ฆ, ์ค์ ๋ก ์ ๋ณ์๋ฅผ ๋์
newName
ํ๊ณ ์ด๋ฅผ ํด๋์ค์ ์ด๋ฏธ ์กด์ฌํ๋ ๋ณ์์ ํ ๋นํ์ต๋๋ค name
. ๋ง์ ํ๋ก๊ทธ๋๋จธ๋ค์ ๊ฒฐ๊ตญ ๊ฐ์ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ ๋ ์๋ก์ด ์ด๋ฆ์ ๊ฐ์ง ๋ณ์๋ฅผ ๋์
ํ๋ ๊ฒ์ด ์ด์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ์์
์๊ฐ์ ์ด๋ฆ์ ๋ํด์ Human
. ๊ทธ๋์ ์ธ์ด ๊ฐ๋ฐ์๋ค์ ํ๋์ ๋ณ์ ์ด๋ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ ํธ๋ฆฌํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์๊ฐํ์ต๋๋ค. ์ฆ, ๋์ผํ ๊ฒ์ ์๋ฏธํ๋ ๋ณ์์ ๋ํด ์ด๋ฆ์ด ๋ ๊ฐ์ธ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ฆ, ์ ๋ ๋ค์๊ณผ ๊ฐ์ ์์
์ ํ๊ณ ์ถ์ต๋๋ค. ํ์ง๋ง ์ด ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค . ์ด์ ์ด๋ฆ์ด ๊ฐ์ ๋ ๊ฐ์ ๋ณ์๊ฐ ์์ต๋๋ค. ํ๋๋ String name
ํด๋์ค์ ์ Human
ํ๊ณ ๋ค๋ฅธ ํ๋๋ String name
ํด๋น ๋ฉ์๋์ ์ํฉ๋๋ค setName
. ๋ฐ๋ผ์ Java ์์คํ
์ setter์ ๋ฌธ์์ด์ ์์ฑํ ๋ ์ด๋ค ๋ณ์๋ฅผ ์๋ฏธํ๋์ง ์ ์ ์์ต๋๋ค.
name = name;
name
Java๋ ๋ฉ์๋์์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ ์ทจํฉ๋๋ค setName
.
name
. ๋ฌผ๋ก ๋ง์ด๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ณ์, name
ํด๋์ค, Human
๋ณ์, name
๋ฉ์๋ ๋ฅผ ๊ตฌ๋ณํ๊ธฐ ์ํ ์ด๋ค ๋ฐฉ๋ฒ์ด ํ์ํ๋๋ฐ setName
, ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํค์๋๊ฐ ๋์
๋์๋๋ฐ this
, ์ด ๊ฒฝ์ฐ ๋ฉ์๋๊ฐ ์๋ ๋ณ์๋ฅผ ํธ์ถํด์ผ ํจ์ ๋ํ๋
๋๋ค. ์์
์ค Human
:
this
๊ธฐ์ฌ ์์ ๋ถ๋ถ์์ ์ธ๊ธํ๋ฏ์ด ํธ์ถ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก setName
์์ฑ๋ ๊ฐ์ฒด์๋ setter๋ฅผ ํตํด ์ฌ๋์ ์ด๋ฆ์ด ์ค์ ๋ฉ๋๋ค. ์๋๋ ํค์๋๋ฅผ ์ฌ์ฉํ์ง ์์ ์ฝ๋์
๋๋ค this
. ์ฝ๋๋ ํด๋์ค ๊ฐ์ฒด๋ฅผ ์์ฑ Human
ํ๊ณ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
this
.
public class Solution{
public static void main(String[] args) {
Human human1 = new Human();
human1.setName("Volodya");
human1.print();
}
}
class Human{
String name;
public String getName() {
return name;
}
public void setName(String name){
this.name = name;
}
void print(){
System.out.println(name);
}
}
๋ฐ๋ผ์ this
๋์ผํ ๊ฒ์ ํ์ํ๊ธฐ ์ํด ์๋ก์ด ๋ณ์๋ฅผ ๋์
ํ๋ ๊ฒ์ ๋ฐฉ์งํ์ฌ ์ฝ๋๊ฐ ์ถ๊ฐ ๋ณ์๋ก ์ธํด "์ค๋ฒ๋ก๋"๋๋ ์ผ์ด ์ค์ด๋ญ๋๋ค.
์์ 2 - ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ์์ ์ผ๋ก ์์ฑ์๋ฅผ ํธ์ถํฉ๋๋ค.
ํ๋์ ์์ฑ์์์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ๋ ๊ฒ์ (์ด์ํ๊ฒ๋) ์ฌ๋ฌ ์์ฑ์๊ฐ ์๊ณ ์ด์ ์์ฑ์์ ์ ๊ณต๋ ์ด๊ธฐํ ์ฝ๋๋ฅผ ์ ์์ฑ์์์ ๋ค์ ์์ฑํ๊ณ ์ถ์ง ์์ ๋ ์ ์ฉํ ์ ์์ต๋๋ค. ํผ๋์ค๋ฌ์ด? ๋ณด์ด๋ ๊ฒ๋งํผ ๋ชจ๋ ๊ฒ์ด ๋ฌด์ญ์ง ์์ต๋๋ค. ์๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด ๋ ๊ฐ์ ํด๋์ค ์์ฑ์๊ฐ ์์ต๋๋คHuman
.
class Human{
int age;
int weight;
int height;
Human(int age, int weight){
this.age = age;
this.weight = weight;
}
Human(int age, int weight, int height){
//you call the constructor with two parameters
this(age, weight);
//and add the missing variable
this.height = height;
}
}
int age
์ฌ๊ธฐ์๋ ๋จผ์ ๋ฐ ๋ฅผ ํ์ฉํ๋ 2๊ฐ์ ๋งค๊ฐ๋ณ์ ์์ฑ์๊ฐ ์์ต๋๋ค int weight
. ์ฌ๊ธฐ์ ๋ ์ค์ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
this.age = age;
this.weight = weight;
๊ทธ๋ฐ ๋ค์ ๋์ด์ ์ฒด์ค ์ธ์๋ ํค๋ ๊ฐ์ ธ์ค๋ ์ธ ๊ฐ์ ๋งค๊ฐ ๋ณ์๊ฐ ์๋ ๋ ๋ค๋ฅธ ์์ฑ์๋ฅผ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ ์์ฑ์์์๋ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค.
this.age = age;
this.weight = weight;
this.height = height;
๊ทธ๋ฌ๋ ์ด ์์ฑ์์์ ์ด๋ฏธ ์์ฑํ ์ฝ๋๋ฅผ ๋ฐ๋ณตํ๋ ๋์ ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ this
๋ ๊ฐ์ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์์ฑ์๋ฅผ ๋ช
์์ ์ผ๋ก ํธ์ถํ ์ ์์ต๋๋ค.
this(age, weight);
// and add the missing variable:
this.height = height;
๋ฐ๋ผ์ ์์ฑ์์๊ฒ ์ธ ๊ฐ์ง ๋งค๊ฐ๋ณ์๋ฅผ ์๋ ค์ฃผ๋ ๊ฒ์
๋๋ค.
- ๋ ๊ฐ์ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์ด ์์ฑ์๋ฅผ ํธ์ถํฉ๋๋ค.
- ๋๋ฝ๋ ๋ณ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
this
์ ์ ๋ฉ์๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฉ์๋์ ์ ๋ฌ๋๋ฉฐ(๋ฐ๋ผ์ this
์์์ ๋งค๊ฐ๋ณ์๋ผ๊ณ ๋ ํจ) ๋ฉ์๋๋ฅผ ํธ์ถํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด ํค์๋๋ ๋ฌด์ญ์ง ์์ผ๋ ๋๋ ค์ํ ํ์๊ฐ ์์ต๋๋ค This
.
GO TO FULL VERSION