์ธ๋งฅ๊ด๋ฆฌํ๋ก๊ทธ๋จ (์์,๋คํ์ฑ,์ค๋ฒ๋ผ์ด๋ฉ)
์ธ๋งฅ๊ด๋ฆฌํ๋ก๊ทธ๋จ์ ๋ง๋ค์.
์ต๋ 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();
}
}
}