본문 바로가기
Java

[Java] Interface2

by 엘딘 2022. 5. 16.
NameCard_main
import cls.NameCard;
import cls.PrintNameCard;
import cls.PrintNamePhoneCard;

public class NameCard_main {

	public static void main(String[] args) {
		
		NameCard namecard = new NameCard("홍길동", "123-4567", "asdf@naver.com");
		
		
	//	PrintNameCard pnc = new PrintNameCard();
	//	namecard.setPrintNameCard(pnc);				// NameCard 18번째 줄로 정보 감
		namecard.setPrintNameCard(new PrintNameCard());		// 12,13줄을 요약한것
		namecard.print();					// NameCard의 22번째 줄 가져옴
		
		
		
		PrintNamePhoneCard pnpc = new PrintNamePhoneCard();
		namecard.setPrintNamePhoneCard(pnpc);
		namecard.printPhone();
		
	}

}

 

NameCard

 

package cls;

public class NameCard {		// main 8번째 줄에 작성된 내용의 형태를 만들기 위한 class
	
	String name;
	String phone;
	String email;
	
	PrintNameCard pNameCard;	// PrintNameCard에 해당하는 멤버변수 
	
	public NameCard(String name, String phone, String email) {
		super();
		this.name = name;
		this.phone = phone;
		this.email = email;
	}
	
	public void setPrintNameCard(PrintNameCard p) {	// main에서 생성된 것이(밖에서) 이 클래스로 온것
		pNameCard = p;		// 9번째 줄 pNamecard가 p에 저장되는것!
	}
	
	public void print() {		// PrintNameCard 9번째줄
		pNameCard.print(this);	// PrintNameCard 9번째 줄 nc로 정보를 넘기기위해
								// this는 NameCard에 있는 주소...
	}
	PrintNamePhoneCard pNamePhonCard;
	
	public void setPrintNamePhoneCard(PrintNamePhoneCard p) {
		pNamePhonCard = p;
	}
	
	public void printPhone() {
		pNamePhonCard.print(this);
	}
}

 

PrintNameCard
package cls;

public class PrintNameCard {
	
//	public PrintNameCard() {		// 암묵적으로 있다고 본다.
//		
//	}
											// NameCard로부터 정보를 받아 오는 부분
	public void print(NameCard nc) {		// 매개변수로 클래스 이름 잡으면 다 가져올 수 있다
		System.out.println("이름: " + nc.name);
	}
	
}

 

 

PrintNamePhoneCard
package cls;

public class PrintNamePhoneCard {

	public void print(NameCard nc) {
		System.out.println("이름: " + nc.name);
		System.out.println("전화번호: " + nc.phone);
	}
    
}

'Java' 카테고리의 다른 글

[Java] 숫자 정렬  (0) 2022.05.17
[Java] 학생들의 평균 점수를 구하라  (0) 2022.05.16
switch  (0) 2022.05.10
[Java] 계산기  (0) 2022.05.02
[Java] Override  (0) 2022.04.12

댓글