JavaRush /Java Blog /Random-KO /ํ‚ค์›Œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. {์˜ˆ์ œ์—์„œ}

ํ‚ค์›Œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. {์˜ˆ์ œ์—์„œ}

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
JavaRush์—์„œ๋Š” ํ•™์ƒ๋“ค์—๊ฒŒ ์ฒซ ๋ฒˆ์งธ ๊ฐ•์˜๋ถ€ํ„ฐ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ํ‚ค์›Œ๋“œ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค this. ๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ๋ถ„๋ช…ํ•ด์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋˜๋Œ์•„ ๋ณด๋ฉด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์€ ์•„๋งˆ๋„ ์˜ค๋žซ๋™์•ˆ ์ด ํ•ต์‹ฌ ๋‹จ์–ด์˜ ์„ ์„ ๊นจ๋‹ซ์ง€ ๋ชปํ–ˆ๋‹ค๊ณ  ์Šค์Šค๋กœ์—๊ฒŒ ์†”์งํ•˜๊ฒŒ ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. this์ด ๊ธ€์—์„œ๋Š” ์•„์ง๋„ ๊ทธ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋น„๋ฐ€์„ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค ... ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! Schildt์˜ Java ์ฐธ์กฐ ์„œ์ ์„ ์„ ํƒํ•˜๋ฉด 171ํŽ˜์ด์ง€์—์„œ this๋ฉ”์†Œ๋“œ๊ฐ€ ์ด๋ฅผ ํ˜ธ์ถœํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ํ‚ค์›Œ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๋‚ด์šฉ์„ ์ฝ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค . ์‚ฌ์‹ค ์ด๊ฒŒ ๋์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ตฌ์ฒด์ ์ธ ๋‚ด์šฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค์›Œ๋“œ this(์˜ˆ์ œ์—์„œ) - 1์›์น™์ ์œผ๋กœ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ์—this ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค .
  1. ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ/์ƒ์„ฑ์ž ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์ด ๊ฐ™์€ ๊ฒฝ์šฐ
  2. ํ•œ ์œ ํ˜•์˜ ์ƒ์„ฑ์ž(์˜ˆ: ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ํ™”๋œ ์ƒ์„ฑ์ž)๋ฅผ ๋‹ค๋ฅธ ์œ ํ˜•์—์„œ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ. ์ด๋ฅผ ๋ช…์‹œ์  ์ƒ์„ฑ์ž ํ˜ธ์ถœ์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ๋Š” ์ด ๋ฌด์„œ์šด ํ‚ค์›Œ๋“œ๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๊ฐ€์ง€ ์‚ฌ๋ก€๊ฐ€ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ์ด์ œ ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ๋‘ ๊ฐ€์ง€ ์ƒํ™ฉ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ 1 - ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์ด ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

Human"์ด๋ฆ„" ํ•„๋“œ๊ฐ€ ์ •์˜๋œ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค . ๋ณ€์ˆ˜์— ๋Œ€ํ•œ setter๋ฅผ ํ‚ค์›Œ๋“œ this(์˜ˆ์ œ์—์„œ) - 2๋งŒ๋“ญ๋‹ˆ๋‹ค name(setter๋Š” ๊ฝค ์ž‘๋™ํ•˜๊ณ  ์—ฌ๊ธฐ์—๋Š” ํŠธ๋ฆญ์ด ์—†์Šต๋‹ˆ๋‹ค). ๋ณ€์ˆ˜๋ฅผ ํ‚ค์›Œ๋“œ this(์˜ˆ์ œ์—์„œ) - 3๋ฉ”์„œ๋“œ(setter)์— setName์ „๋‹ฌํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์„ธ์š”. ) String newName. ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜๋ฅผ ๋„์ž…ํ–ˆ๊ณ  (์ผ๋ฐ˜์ ์œผ๋กœ) ๋ฉ”์†Œ๋“œ์˜ {์ค‘๊ด„ํ˜ธ} ๋‚ด์—์„œ๋งŒ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ๋Œ€๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค setName. setter์—๋Š” ํ•œ ์ค„์ด ์žˆ์Šต๋‹ˆ๋‹ค.
name = newName;
์ฆ‰, ์‹ค์ œ๋กœ ์ƒˆ ๋ณ€์ˆ˜๋ฅผ ๋„์ž… newNameํ•˜๊ณ  ์ด๋ฅผ ํด๋ž˜์Šค์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ณ€์ˆ˜์— ํ• ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค name. ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ๊ฒฐ๊ตญ ๊ฐ™์€ ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์„ ๋•Œ ์ƒˆ๋กœ์šด ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ณ€์ˆ˜๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์—…์‹œ๊ฐ„์— ์ด๋ฆ„์— ๋Œ€ํ•ด์„œ Human. ๊ทธ๋ž˜์„œ ์–ธ์–ด ๊ฐœ๋ฐœ์ž๋“ค์€ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋™์ผํ•œ ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š” ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ด๋ฆ„์ด ๋‘ ๊ฐœ์ธ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ฆ‰, ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํ‚ค์›Œ๋“œ this(์˜ˆ์ œ์—์„œ) - 4ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค . ์ด์ œ ์ด๋ฆ„์ด ๊ฐ™์€ ๋‘ ๊ฐœ์˜ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” String nameํด๋ž˜์Šค์— ์† Humanํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” String nameํ•ด๋‹น ๋ฉ”์†Œ๋“œ์— ์†ํ•ฉ๋‹ˆ๋‹ค setName. ๋”ฐ๋ผ์„œ Java ์‹œ์Šคํ…œ์€ setter์— ๋ฌธ์ž์—ด์„ ์ž‘์„ฑํ•  ๋•Œ ์–ด๋–ค ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
name = name;
nameJava๋Š” ๋ฉ”์†Œ๋“œ์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฒƒ์„ ์ทจํ•ฉ๋‹ˆ๋‹ค setName.
ํ‚ค์›Œ๋“œ this(์˜ˆ์ œ์—์„œ) - 5
๊ทธ๋ฆฌ๊ณ  ์ด ๋ฉ”์†Œ๋“œ์˜ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค name. ๋ฌผ๋ก  ๋ง์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜, nameํด๋ž˜์Šค, Human๋ณ€์ˆ˜, name๋ฉ”์†Œ๋“œ ๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์–ด๋–ค ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ–ˆ๋Š”๋ฐ setName, ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ‚ค์›Œ๋“œ๊ฐ€ ๋„์ž…๋˜์—ˆ๋Š”๋ฐ this, ์ด ๊ฒฝ์šฐ ๋ฉ”์†Œ๋“œ๊ฐ€ ์•„๋‹Œ ๋ณ€์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ˆ˜์—… ์ค‘ Human:
ํ‚ค์›Œ๋“œ this(์˜ˆ์ œ์—์„œ) - 6
์ฆ‰, this๊ธฐ์‚ฌ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ํ˜ธ์ถœ ๊ฐœ์ฒด๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ setName์ƒ์„ฑ๋œ ๊ฐ์ฒด์—๋Š” setter๋ฅผ ํ†ตํ•ด ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค this. ์ฝ”๋“œ๋Š” ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ Humanํ•˜๊ณ  ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ‚ค์›Œ๋“œ this(์˜ˆ์ œ์—์„œ) - 7
์•„๋ž˜๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ํฌํ•จ๋œ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค 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;
๋”ฐ๋ผ์„œ ์ƒ์„ฑ์ž์—๊ฒŒ ์„ธ ๊ฐ€์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๋‘ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ์ด ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ๋ˆ„๋ฝ๋œ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฒŒ ๋‹ค์•ผ =). ๋งˆ์ง€๋ง‰์œผ๋กœ, Java์—์„œ this ํ‚ค์›Œ๋“œ๋Š” ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”์„œ๋“œ๋‚˜ ์ƒ์„ฑ์ž์˜ ์ผ๋ถ€๋กœ๋งŒ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์„ธ์š”. ๊ทธ๋Ÿฌ๋‚˜ ์•”์‹œ์ ์œผ๋กœ ํ‚ค์›Œ๋“œ๋Š” this์ •์  ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฉ”์†Œ๋“œ์— ์ „๋‹ฌ๋˜๋ฉฐ(๋”ฐ๋ผ์„œ this์•”์‹œ์  ๋งค๊ฐœ๋ณ€์ˆ˜๋ผ๊ณ ๋„ ํ•จ) ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ‚ค์›Œ๋“œ๋Š” ๋ฌด์„ญ์ง€ ์•Š์œผ๋‹ˆ ๋‘๋ ค์›Œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค This.
ํ‚ค์›Œ๋“œ this(์˜ˆ์ œ์—์„œ) - 9
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION