1. JAVA/1.2 실습

JAVA_09_실습_상속

마느링 2022. 3. 27. 23:15

문제 ] 남자 아이돌 NCT 라는 그룹은 NCT Dream, NCT U, NCT 127 라는 파생된 형태의 그룹이 존재한다.

        이에 해당하는 클래스를 만들고 NCT 클래스를 만들어서 상속하도록 한다.

        메인메소드에서 NCT 객체를 생성하면 그룹이름 , 멤버이름이 출력되도록 클래스 작성.

 

1. 부모클래스  : NCT 클래스 작성

2. 자식클래스 : NCT Dream , NCT U, NCT127 클래스 작성

 

1) 자식클래스 먼저 작성해주어 멤버와 그 클래스를 호출하면 주소 대신 그룹 이름이 나오도록 설정해주었다.

   1.1) NCT 127 클래스

public class Nct127 extends Nct{
	String[] member127;
	Nct127(){
	setting();	
	}
	
	public void setting() {
	member127 = new String[] {"태일", "쟈니", "태용", "유타", "도영", "재현", 
                              "윈윈", "마크", "해찬", "정우"};
	}
	
	public void print127() {
		for(int i = 0; i<member127.length;i++) {
			System.out.print(member127[i]+" ");
		}
	}
	public String toString() {
		return "NCT127";
	}
	
}

   1.2) NCT U클래스

public class NctU extends Nct{
	String[] memberU;
	NctU(){
	setting();	
	}
	public void setting() {
		memberU = new String[] {"태용", "도영", "재현", "윈윈", "정우", "마크", "루카스"};
	}
	public void printU() {
		for(int i = 0; i<memberU.length;i++) {
			System.out.print(memberU[i]+" ");
		}
	}
	public String toString() {
		return "NCT U";
	}
	
}

   1.3) NCT Dream클래스

public class NctDream extends Nct{
	String[] memberDream;
	NctDream(){
		setting();
	}
	
	public void setting() {
		memberDream = new String[] {"마크", "런쥔", "제노", "해찬", "재민", "천러", "지성"};
	}
	
	public void printdream() {
		for(int i = 0; i<memberDream.length;i++) {
			System.out.print(memberDream[i]+" ");
		}
	}
	public String toString() {
		return "NCT Dream";
	}
	
}

 

 

2) 그리고 이를 상속시키는 NCT 클래스를 작성하여 각 클래스를 NCT 배열로 셋팅해주었다.

public class Nct {
	Nct[] nct;
	Nct(){
		
	}
	public void setNct() {
		nct = new Nct[] {new Nct127(),new NctDream(),new NctU()};
	}
	public void toPrint() {
		for(int i = 0; i<nct.length;i++) {
			System.out.print(nct[i]+" : ");	//주소값 대신 nct 크룹 명이 출력되도록 함
			if(nct[i] instanceof Nct127) {
				Nct127 nct127 = (Nct127)nct[i];//nct[i]가 상위클래스 이기 때문에 nct127로 강제형변환 시켜주었다.
				nct127.print127();//print127 함수를 호출해서 출력해준다.
			}
			else if(nct[i] instanceof NctDream) {
				NctDream dream = (NctDream)nct[i];
				dream.printdream();
			}
			else if(nct[i] instanceof NctU) {
				NctU nctu = (NctU)nct[i];
				nctu.printU();
			}
			System.out.println();
		}
	}
}

3) 메인메소드에서 출력

public class Main {

	public static void main(String[] args) {
	Nct n1 = new Nct();
	n1.setNct();
	n1.toPrint();

	}

}

 

결과

내가 관심있어하는 NCT 라는 그룹에는 여러 그룹이 파생되어서 활동하는데 

이걸 상속관련해서 예제로 공부하면 재밌을거같아 작성해보았다.^^...