java

์ธ๋งฅ๊ด€๋ฆฌํ”„๋กœ๊ทธ๋žจ (์ƒ์†,๋‹คํ˜•์„ฑ,์˜ค๋ฒ„๋ผ์ด๋”ฉ)

byeol_dev 2023. 2. 1. 13:42

์ธ๋งฅ๊ด€๋ฆฌํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์ž.

์ตœ๋Œ€ 10๋ช… ์ €์žฅ ๊ฐ€๋Šฅ

- ๋Œ€ํ•™์นœ๊ตฌ(UniFriend) : ์ด๋ฆ„, ์ „๊ณต, ์—ฐ๋ฝ์ฒ˜

- ์ง์žฅ๋™๋ฃŒ(ComFriend) : ์ด๋ฆ„, ๋ถ€์„œ, ์—ฐ๋ฝ์ฒ˜

์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜ ์ค‘๋ณต ๋จ

> ์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜๋งŒ ์žˆ๋Š” ํด๋ž˜์Šค(Friend) ์ƒ์„ฑ ํ›„ Friend ํด๋ž˜์Šค ์ƒ์† ๋ฐ›๋Š” ํ˜•ํƒœ๋กœ

package friend_Manage_์ธ๋งฅ๊ด€๋ฆฌํ”„๋กœ๊ทธ๋žจ_์ƒ์†;

public class Friend {
    private String name;
    private String tell;

    public Friend(String name, String tell){
        this.name = name;
        this.tell = tell;
    }

    public void showInfo() {
        System.out.println("์ด๋ฆ„ : " + name);
        System.out.println("์—ฐ๋ฝ์ฒ˜ : " + tell);

    }
}

์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜ ๋ณ€์ˆ˜๋ฅผ private๋กœ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์—

์ƒ์† ๋ฐ›๋Š”๋‹ค๊ณ  ํ•ด๋„ ์ง์ ‘ ์‚ฌ์šฉ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— getter, setter ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ •์„.

์ด๋ฒˆ์—” ์ƒ์„ฑ์ž ๋งŒ๋“ค์–ด์„œ ํ’€ ๊ฒƒ.

๋Œ€ํ•™์นœ๊ตฌ, ์ง์žฅ๋™๋ฃŒ ํด๋ž˜์Šค ๋งŒ๋“ค์–ด ์คŒ.

package friend_Manage_์ธ๋งฅ๊ด€๋ฆฌํ”„๋กœ๊ทธ๋žจ_์ƒ์†;

public class UniFriend extends Friend{
    private String major;

    public UniFriend(String name, String tell, String major){
        super(name, tell);   //friend์˜ ์ƒ์„ฑ์ž์—์„œ ๊ฐ€์ ธ์˜ด.
        this.major = major;
    }
    //๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ์ ์šฉ
    public void showInfo(){
        super.showInfo();  //๋ถ€๋ชจํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜ ๊ฐ€์ ธ์˜ด
        System.out.println("์ „๊ณต : " + major);
    }
}

-

package friend_Manage_์ธ๋งฅ๊ด€๋ฆฌํ”„๋กœ๊ทธ๋žจ_์ƒ์†;

public class CompFriend extends Friend {
    private String department;

    public CompFriend(String name, String tell, String department){
        super(name, tell);
        this.department = department;
    }
    //๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ
    public void showInfo(){
        super.showInfo();
        System.out.println("๋ถ€์„œ : " + department);
    }

}

์ƒ์† ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๋งŒ๋“ค๊ธฐ ๊ฐ€๋Šฅ

package friend_Manage_์ธ๋งฅ๊ด€๋ฆฌํ”„๋กœ๊ทธ๋žจ_์ƒ์†;

public class Manager {
    public static void main(String[] args) {
        //์ƒ์†๊ฐœ๋… ์ ์šฉX
        UniFriend[] ufs = new UniFriend[5];
        CompFriend[] cfs = new CompFriend[5];
        HobbyFriend[] hfs = new HobbyFriend[5];

        //๋Œ€ํ•™ ์นœ๊ตฌ ์ •๋ณด ๋“ฑ๋ก
        int uniIndex = 0; //๋Œ€ํ•™ ์นœ๊ตฌ๋“ค์˜ ๋ฐฐ์—ด ์š”์†Œ ์ˆœ์„œ
        ufs[uniIndex++] = new UniFriend("ํ™๊ธธ๋™", "010", "๊ฒฝ์˜");
        //์‹คํ–‰ ํ›„ 0์ธ ์ƒํƒœ์—์„œ ๋“ฑ๋ก > ์ฆ๊ฐ€ 1์ด ๋จ > ํ•œ ์ค„ ์‹คํ–‰ ๋‹ค ํ•œ ํ›„ ๋˜ ์ฆ๊ฐ€
        ufs[uniIndex++] = new UniFriend("๊น€๊ธธ๋™", "010", "์ปด๊ณต");

        //ํšŒ์‚ฌ ๋™๋ฃŒ ๋“ฑ๋ก
        int compIndex = 0;
        cfs[compIndex++] = new CompFriend("๊น€๋Œ€๋ฆฌ", "011", "์˜์—…๋ถ€");
        cfs[compIndex++] = new CompFriend("์ด๊ณผ์žฅ", "010", "์ธ์‚ฌ๋ถ€");

        //์ทจ๋ฏธ ์นœ๊ตฌ ๋“ฑ๋ก
        int hobbyIndex = 0;
        hfs[hobbyIndex++] = new HobbyFriend("๊น€์ž๋ฐ”","010","๋†๊ตฌ");
        hfs[hobbyIndex++] = new HobbyFriend("์ด์ž๋ฐ”","010","๋†๊ตฌ");

        //๋Œ€ํ•™ ์นœ๊ตฌ ์ •๋ณด ์ถœ๋ ฅ
        for (int i = 0; i < uniIndex; i++) {
            ufs[i].showInfo();
        }
        //ํšŒ์‚ฌ ๋™๋ฃŒ ์ •๋ณด ์ถœ๋ ฅ
        for (int i = 0; i < compIndex; i++) {
            cfs[i].showInfo();
        }
        //์ทจ๋ฏธ ์นœ๊ตฌ ์ •๋ณด ์ž…๋ ฅ
        for (int i = 0; i < hobbyIndex; i++) {
            hfs[i].showInfo();
        }
    }
}

๊ทธ๋Ÿฌ๋‚˜, ํ”„๋กœ๊ทธ๋žจ ๋‹ค ๋งŒ๋“  ํ›„

hobbyfriend๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด? hobbyfrined์— ๊ด€ํ•œ ๋ชจ๋“  ์ž‘์—… ๋‹ค์‹œ ์ถ”๊ฐ€๋กœ ํ•ด์•ผ ๋จ.

์ด๋ฅผ ์œ„ํ•ด ์ƒ์†์„ ์‚ฌ์šฉํ•˜๋ฉด ํŽธํ•˜๊ฒŒ ์ž‘์—…๊ฐ€๋Šฅ!

 

์ถ”๊ฐ€ํ•  ์นœ๊ตฌ ์ข…๋ฅ˜(hobbyfriend) ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ์คŒ.

package friend_Manage_์ธ๋งฅ๊ด€๋ฆฌํ”„๋กœ๊ทธ๋žจ_์ƒ์†;

public class HobbyFriend extends Friend{
    private String hobby;

    public HobbyFriend(String name, String tell, String hobby){
        super(name, tell);
        this.hobby = hobby;
    }

    public void showInfo(){
        super.showInfo();
        System.out.println("์ทจ๋ฏธ : " + hobby);
    }
}

์ƒ์† ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„

package friend_Manage_์ธ๋งฅ๊ด€๋ฆฌํ”„๋กœ๊ทธ๋žจ_์ƒ์†;

public class UpgradeManager {
    public static void main(String[] args) {
        //์ƒ์† ์‚ฌ์šฉ
        Friend[] fs = new Friend[10];   //์นœ๊ตฌ ๊ณต๊ฐ„ 10๊ฐœ ๋งŒ๋“ฆ

        //์นœ๊ตฌ ๋“ฑ๋ก
        int index = 0;
        fs[index++] = new UniFriend("๊น€","0","๊ณผ");
        fs[index++] = new UniFriend("์ด","0","๊ณผ");
        fs[index++] = new CompFriend("์ด","0","๋ถ€");
        fs[index++] = new CompFriend("๊น€","0","๋ถ€");
        fs[index++] = new HobbyFriend("๊น€","0","๋†๊ตฌ");

        //์นœ๊ตฌ ์ •๋ณด ์ถœ๋ ฅ
        for(int i = 0; i < index ; i++){
            fs[i].showInfo();
        }
    }
}