๐Ÿ“š ์ฑ… ์†Œ๊ฐœํ•˜๊ธฐ

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ์ž๋ฐ”์™„์ „์ •๋ณต ์ฑ… ๋งํฌ!
ใ„ด ๊น€๋™ํ˜• ์ง€์Œ, ์ด์ง€์Šคํผ๋ธ”๋ฆฌ์‹ฑ

 

 

 

: ์ถœ์ฒ˜ ์˜ˆ์Šค24 ํ™ˆํŽ˜์ด์ง€

 

 

 

์ด ์ฑ…์„ ๊ณ ๋ฅด๊ฒŒ ๋œ ์ด์œ ๋Š” ์นœ๊ตฌ์˜ ์ถ”์ฒœ์ด์—ˆ๋‹ค. ๊ต‰์žฅํžˆ ๊ผผ๊ผผํ•˜๊ฒŒ ์ ํ˜€์žˆ์–ด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค๋Š” ์ด์œ ๋กœ ์นœ๊ตฌ๋Š” ์ด ์ฑ…์„ ๊ณจ๋ž๋‹ค๊ณ  ํ–ˆ๋‹ค. ๋‚˜๋„ ๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ๋”ฐ๋ผ์ƒ€๋‹ค. ์‹ค์ œ๋กœ ์ฑ…์„ ์‚ดํŽด๋ณด๋‹ˆ ๊ต‰์žฅํžˆ ๊ผผ๊ผผํ•˜๊ฒŒ ์ •๋ฆฌ๋˜์–ด์žˆ๋‹ค. ๋‹ค๋ฅธ ์ฑ…์€ ๋ณธ ์ ์ด ์—†์–ด ๋น„๊ต๊ฐ€ ๋ถˆ๊ฐ€ํ•˜์ง€๋งŒ, ๋‚ด ์ƒ๊ฐ์œผ๋ก  ์ฒ˜์Œ ์ž๋ฐ”๋ฅผ ๊ณต๋ถ€ํ•œ๋‹ค๋ฉด ์ด ์ฑ…์„ ๊ฐ€์ง€๊ณ  ์ถฉ๋ถ„ํžˆ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ์„ ๋“ฏ ํ•˜๋‹ค. ๋ชจ๋‘๋“ค ํ™”์ดํŒ…!!

 

 

๐Ÿฐ

 




โœ”๏ธ   ํ•„๋“œ์™€ ์ง€์—ญ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ_ 253p

 

 ํ•„๋“œ 

:  ํด๋ž˜์Šค์— ํฌํ•จ๋œ ๋ณ€์ˆ˜

 

 ์ง€์—ญ๋ณ€์ˆ˜

:  ๋ฉ”์„œ๋“œ์— ํฌํ•จ๋œ ๋ณ€์ˆ˜

Class A {
    int m;
    int n;
    
    void init(int a, int b) {
        int c;
        c = 3;
        
        m = a;
        n = b;
    }
}
ํ•ด๋‹น ์ฝ”๋“œ๋Š” ํ•„๋“œ์™€ ์ง€์—ญ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ์ด๋‹ค. ํ•„๋“œ๋Š” ํด๋ž˜์Šค๊ฐ€ ์‹œ์ž‘ํ•˜๋Š” ๋งจ ์œ„์— ์ •์˜๋œ ๋ณ€์ˆ˜์ธ๋ฐ, ์—ฌ๊ธฐ์„œ๋Š” m๊ณผ n์„ ๋งํ•œ๋‹ค. ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” a์™€ b๊ฐ€ ๋œ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์ง€์—ญ๋ณ€์ˆ˜๋‹ค. a๋Š” m์— ์˜ฎ๊ธฐ๊ณ , b๋Š” n์— ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ๋ฉ”์„œ๋“œ init์ด ํ•ด์•ผํ•  ์ผ์ด๋‹ค. ์ด๋•Œ๋Š” ํ•„๋“œ์™€ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ด๋ฆ„์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— m๊ณผ n ์•ž์— this.๋ฅผ ๋ถ™์ด์ง€ ์•Š์•„๋„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ๋“ฑ๋กํ•ด์ค€๋‹ค.

 

 

 

 


 

 

โœ”๏ธ   ํ•„๋“œ์™€ ์ง€์—ญ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ๊ฐ™์€ ๊ฒฝ์šฐ_ 255p

 

Class A {
    int m;
    int n;
    
    void init(int m, int n) {
        m = m;
        n = n;
    }
}

public class pratice {
    public static void main(String[] args) {
        
        A a = new A();
        
        a.init(3,4);
        
        System.out.println(a.m);
        System.out,println(a.n);
     }
}
ํ•ด๋‹น ์ฝ”๋“œ๋Š” ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„์ด ๊ฐ™์€ ๊ฒฝ์šฐ๋‹ค. ์ธ์ž 3๊ณผ 4๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ๋ฐ›์•„์™”๋‹ค. ๊ฐ ๊ฐ’์€ init ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ m๊ณผ n์— ๋“ค์–ด์žˆ๊ฒŒ ๋œ๋‹ค. m๊ณผ n์„ ํ•„๋“œ์— ์ €์žฅํ•˜๊ณ  ์‹ถ์—ˆ์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ํ•„๋“œ์™€ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ด๋ฆ„์ด ๊ฐ™์€ ๋ฐ”๋žŒ์— ํŒŒ๋ผ๋ฏธํ„ฐm์„ ํŒŒ๋ผ๋ฏธํ„ฐ m์— ์˜ฎ๊ธฐ๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ n์„ ํŒŒ๋ผ๋ฏธํ„ฐ n์— ์˜ฎ๊ธฐ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ํด๋ž˜์Šค ํ•„๋“œ๊ฐ’ m๊ณผ n์„ ์˜๋ฏธํ•˜๋Š” a.m๊ณผ a.n์€ ๊ฒฐ๊ตญ ์ถœ๋ ฅํ•˜๊ฒŒ ๋˜๋”๋ผ๊ณ  ๊ฐ’์ด ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค.

 

 

 

 


 

 

 

โœ”๏ธ   this๋ฅผ ์ฃผ๋กœ ์“ฐ๋Š” ๊ฒฝ์šฐ (์ฑ…์— ์—†์Œ)

์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

B b = new B();
A a = new A(b);

a.addDataToB("Hello World!");

 

๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. ํด๋ž˜์Šค B๋Š” b๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ–ˆ๊ณ , ํด๋ž˜์Šค A๋Š” a๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์•Œ๊ฒ ์ง€๋งŒ, ํด๋ž˜์„œ A๋Š” ํด๋ž˜์Šค B๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค. ๋˜ addDataToB ๋ฉ”์„œ๋“œ๊ฐ€ ํด๋ž˜์Šค B์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด a๋Š” ๊ฐ์ฒด b๋ฅผ ์ธ์ž๋กœ ์ƒ์„ฑ์ž A์—๊ฒŒ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค.

๋งŒ์•ฝ ๊ทธ๋ ‡๊ฒŒ ๋ณด๋‚ด์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

 

Q. ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ธ์ž b๋กœ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค๋ฉด?

A. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๊ฐ์ฒด a๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „, ์ด๋ฏธ ๊ฐ์ฒด ์ƒ์„ฑ์—์„œ ํด๋ž˜์Šค B๋ฅผ b๋ผ๊ณ  ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด ์ฝ”๋“œ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•„๋“œ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ํ•„๋“œ๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ํด๋ž˜์Šค B๋„ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•˜๊ณ , ํƒ€์ž… B๋ฅผ ๊ฐ€์ ธ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ž b๋ฅผ ๋ณด๋‚ด์•ผํ•œ๋‹ค.

 

 

// ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ
public class B {

    // ํ•„๋“œ data
    private String data;

    // ๋ฐ์ดํ„ฐ ์ €์žฅํ•œ๋‹ค.
    public void saveData(String data) {
        
        // ์ธ์ž๋กœ ๋ฐ›์€ data๋ฅผ ํ•„๋“œ๋กœ ์˜ฎ๊ธด๋‹ค.
        this.data = data;
    }

    // ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ธ๋‹ค.
    public String getData() {
        // ํ•„๋“œ๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.
        return this.data;
    }
}

// ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ์†Œ์— ์ €์žฅํ•˜๊ณ  ๊ฐ’์„ ์ถœ๋ ฅ
public class A {

    // ํด๋ž˜์Šค B๋ฅผ ํ•„๋“œ๋กœ ์ •์˜.
    private final B b;
    
    // ์ƒ์„ฑ์ž A๋กœ ์ €์žฅ์†Œ b์˜ ํ•„๋“œ ๊ฐ’์„ ์ธ์ž๋กœ ๋ฐ›๋Š”๋‹ค.
    // ์ธ์ž๋กœ ๋ฐ›์€ ๊ฐ’์„ A ํด๋ž˜์Šค ํ•„๋“œ b์— ์ €์žฅ
    public A(B b) {
        this.b = b;
    }
    
	// ํด๋ž˜์Šค B์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋ฉ”์„œ๋“œ.
    public void addDataToB(String data) {
        b.saveData(data);
    }

    // B์˜ ๋ฉ”์„œ๋“œ์— ๊ฒฐ๊ณผ๊ฐ’์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฉ”์„œ๋“œ.
    public void printDataFromB() {
        System.out.println("A: ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ -> " + b.getData());
    }
}

 

์ƒ์„ฑ์ž A์—๊ฒŒ ์ธ์ž๊ฐ€ ์ž˜ ๋„์ฐฉํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ์ƒ์„ฑ์ž๋Š” ํ•„๋“œ๋กœ ๋ณด๋‚ด ํด๋ž˜์Šค B์—๊ฒŒ B์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ž„์„ ์•Œ๋ ค์•ผํ•œ๋‹ค. ์ฆ‰, ํƒ€์ž… B๋ฅผ ๊ฐ€์ง„ ํ•„๋“œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— b๊ฐ€ ๋“ค์–ด์˜ค๊ณ  this.b์—๊ฒŒ ๊ฐ’์„ ๋„˜๊ธธ ๊ฒƒ์ด๋‹ค. this.b๋Š” ํ•„๋“œ์˜ b๋ฅผ ๋งํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ธ์ž๋กœ ๋ฐ›์€ b๋ผ๋Š” ๊ฐ’ (ํด๋ž˜์Šค B๋ฅผ ํ’ˆ๊ณ  ์žˆ๋Š”)์€ ํ•„๋“œ๋กœ ๋ณด๋‚ด์ง€๊ฒŒ ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ ์ง๊ด€์ ์ธ ์ดํ•ด๊ฐ€ ์ž˜ ๊ฐ€์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ํ•„๋“œ๋กœ ๊ฐ’์ด ๊ฐ”๋‹ค๋Š” ์˜๋ฏธ๋ฅผ, ํƒ€์ž… B๋ฅผ ๊ฐ€์ง„ b๊ฐ€ ์ž์‹ ๊ณผ ๋˜‘๊ฐ™์€ ํƒ€์ž…์ธ ํ•„๋“œ๋ฅผ ๋งŒ๋‚˜ ์ผํ•˜๋ผ๊ณ  ํ•œ๋Œ€ ์ณค๋‹ค๋Š” ์‹์œผ๋กœ ๋ฐ›์•„๋“œ๋ฆฌ๊ธฐ๋กœ ํ–ˆ๋‹ค. ์•„๋ฌดํŠผ ๊ทธ๋ ‡๊ฒŒ ํ•„๋“œ์˜ ๊ฐ’์€ b๋กœ ์ดˆ๊ธฐํ™”๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ํด๋ž˜์Šค B๊ฐ€ ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ๋ฅผ ๋งˆ์Œ๊ป ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

B b = new B();
A a = new A(b);

a.addDataToB("Hello World!");
๋‹ค์‹œ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„์˜ค๊ฒ ๋‹ค. a.addDataToB๋Š” ๊ฐ์ฒด a(ํด๋ž˜์Šค A)๋ฅผ ํ†ตํ•ด addDataToB๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์— "Hello World!"๋ผ๋Š” ์žฌ๋ฃŒ๋ฅผ ๋„ฃ๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ๋Š” A a = new A(b);๋ฅผ ํ†ตํ•ด ํด๋ž˜์Šค A์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค ์ค€๋น„์‹œ์ผœ๋†จ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ๋ฌธ์ œ์—†์ด a.addDataToB๋Š” ๋Œ์•„๊ฐˆ ๊ฒƒ์ด๋‹ค.

a.addDataToB๋Š” String ํƒ€์ž…์ด ์˜ค๋ฉด ์‹คํ–‰๋˜๋„๋ก ์„ค์ •ํ–ˆ๋‹ค. "Hello World!"๋Š” String ํƒ€์ž…์ด๋‹ˆ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. ์ œ๋Œ€๋กœ ๋œ ์žฌ๋ฃŒ๊ฐ€ ๋“ค์–ด๊ฐ„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  addDataToB๋Š” "Hello World!"๋ฅผ data๋ผ๋Š” ๊ฒƒ์œผ๋กœ ํฌ์žฅํ•˜์—ฌ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

b. saveData(data)๋Š” data ๊ฐ’(Hello World!)์„ ํด๋ž˜์Šค B์— ์žˆ๋Š” saveData๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ๋กœ ๋ณด๋‚ผ ๊ฒƒ์ด๋‹ค.

 

// ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ
public class B {

    // ํ•„๋“œ data
    private String data;

    // ๋ฐ์ดํ„ฐ ์ €์žฅํ•œ๋‹ค.
    public void saveData(String data) {
        
        // ์ธ์ž๋กœ ๋ฐ›์€ data๋ฅผ ํ•„๋“œ๋กœ ์˜ฎ๊ธด๋‹ค.
        this.data = data;
    }

    // ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ธ๋‹ค.
    public String getData() {
        // ํ•„๋“œ๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.
        return this.data;
    }
}
saveData๋Š” data๋ผ๋Š” ํฌ์žฅ์œผ๋กœ ๊ฐ์‹ธ์ง„ Hello World๋ฅผ ๋ฐ›์•˜๋‹ค. ์ด data๋Š” ํ•„๋“œ data์— ๋ณด๋‚ด์ง€๊ฒŒ ๋˜๊ณ  ๋‚˜์ค‘์— ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๊ฐ€ data์— ์žˆ๋Š” ๊ฐ’์ด ํ•„์š”ํ•ด์ง€๋ฉด ๊ฐ€์ ธ๋‹ค ์“ธ ๊ฒƒ์ด๋‹ค. (getData์ฒ˜๋Ÿผ)

 

 

 

public class Car {
    String color;  // ์ž๋™์ฐจ์˜ ์ƒ‰๊น”
    int speed;     // ์ž๋™์ฐจ์˜ ์†๋„

    // ์ƒ์„ฑ์ž ์ •์˜
    public Car(String color, int speed) {
        this.color = color; // ํ•„๋“œ ์ดˆ๊ธฐํ™”
        this.speed = speed; // ํ•„๋“œ ์ดˆ๊ธฐํ™”
    }
}

public class Main {
    public static void main(String[] args) {
        // ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•ด ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •
        Car myCar = new Car("red", 100);

        System.out.println("์ƒ‰๊น”: " + myCar.color + ", ์†๋„: " + myCar.speed);
    }
}
์œ„์˜ ์ฝ”๋“œ๋Š” ํด๋ž˜์Šค๋ฅผ ํ•„๋“œ๋กœ ๋ฐ›๋Š” ๊ฒฝ์šฐ์˜€๋‹ค. ์ด๋ฒˆ ์ฝ”๋“œ๋Š” ๋‹จ์ˆœํ•œ ์ฝ”๋“œ๋กœ ์–ด๋–ค ๊ฐ’์„ ๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ–ˆ๊ณ  ๊ทธ ์•ˆ์— ๋‘ ๊ฐ’์„ ๋„ฃ์—ˆ๋‹ค. ํ•˜๋‚˜๋Š” String ํƒ€์ž…์ด๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” int ํƒ€์ž…์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด Car ํด๋ž˜์Šค๋กœ ๊ฐ€์„œ, ๋‘ ํƒ€์ž…์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ฐพ๋Š”๋‹ค. ๋งž๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ฐพ์•„ ๊ฐ ๊ฐ’์„ ์ธ์ž๋กœ ๋ฐ›๊ณ , ๋ฐ›์€ ์ธ์ž๋Š” ํ•„๋“œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜์—ฌ ์ €์žฅํ•œ๋‹ค. 

๋‹ค์‹œ Mainํด๋ž˜์Šค๋กœ ๊ฐ€๊ฒ ๋‹ค. myCar.color์™€ myCar.speed๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•œ๋‹ค. myCar๋Š” Car ํด๋ž˜์Šค๋ฅผ ํƒ€์ž…์œผ๋กœ ์ง€์ •ํ•œ ๊ฐ์ฒด ์ด๋ฆ„์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด Car ํด๋ž˜์Šค์— ์žˆ๋Š” color๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ•„๋“œ ๊ฐ’๊ณผ speed๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ•„๋“œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ์œ„์—์„œ red์™€ 100์ด๋ผ๋Š” ๊ฐ’์„ ๋ณด๋‚ธ ์ „์ ์ด ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ํ•„๋“œ์— ์ดˆ๊ธฐํ™”์‹œ์ผฐ๊ธฐ ๋•Œ๋ฌธ์— red์™€ 100์ด๋ผ๋Š” ๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค.

 

 

 

 


 

 

 

โœ”๏ธ   this( ) (259p)

Class A {
    int m1, m2, m3. m4;
    
    A() {
        m1 = 1;
        m2 = 2;
        m3 = 3;
        m4 = 4;
    }
    
    A(int a) {
        this();
        m1 = a;
    }
   
   A(int a, int b){
       this(a);
       m2 = b;
   }
}
this( )๋ฅผ ์“ฐ๋ฉด ๋ฐ”๋กœ ์œ„์— ์žˆ๋Š” ์ƒ์„ฑ์ž๋ฅผ ๋“ค๊ณ  ์˜จ๋‹ค. A(int a)๋Š” ์ƒ์„ฑ์ž A๊ฐ€ int ํƒ€์ž…์ธ ์ธ์ž ํ•˜๋‚˜๋ฅผ ๋ฐ›๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

A(int a)๋Š” this( );๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋‹ˆ๊นŒ, ๋ฐ”๋กœ ์œ„์— ์žˆ๋Š” A( )์— ์žˆ๋Š” ๊ฐ’์„ ๋ฐ›์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด m1๋ถ€ํ„ฐ m4๊นŒ์ง€ ๋ฐ›๋Š”๋ฐ ๊ทธ ํ›„ m1์€ a ๊ฐ’์œผ๋กœ ์˜ฎ๊ฒจ ๋‹ด๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋‹ˆ ์ตœ์ข…์ ์œผ๋กœ m1์˜ ๊ฐ’๋งŒ ๋‹ค๋ฅด๊ณ  m2์—์„œ m4๊นŒ์ง€ A( )์™€ ๊ฐ’์ด ๊ฐ™์„ ๊ฒƒ์ด๋‹ค.

A๋Š” int ํƒ€์ž…์ธ a์™€ b์ธ ๋‘๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ–ˆ๋‹ค. this(a)๋Š” ๋ฐ”๋กœ ์œ„์— ์žˆ๋Š” ์ƒ์„ฑ์ž A(int a)๋ฅผ ์˜๋ฏธํ•œ๋‹ค. A(int a)์—์„œ a๋Š” m1์— ์˜ฎ๊ธธ ๊ฒƒ์„ ๋ช…์‹œํ–ˆ์œผ๋‹ˆ m1์€ ๋ฐ›์•„์˜จ a ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  m2๋Š” b์˜ ๊ฐ’์œผ๋กœ ๋ฐ”๋€” ๊ฒƒ์ด๋‹ค.

 

+ Recent posts