Java/Excercise

callback ch04 News

낭구리 2021. 9. 9. 19:42
package ch04;

import java.text.DateFormat;

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class HackerNews implements WriteArticle{
	
	private String printDate() {
		//날짜 형식을 String으로 변환하기 위한 포맷 형식
		DateFormat formater = new SimpleDateFormat("yyyy.MM.dd");
		return formater.format(Calendar.getInstance().getTime());
	} //처음거보다 코드길이 줄어듬

	@Override
	public void printArticle(String article) {
		System.out.println("*** HackerNews ***");
		System.out.println();
		System.out.println(article);
		System.out.println();
		System.out.println("기사 작성일 :" +printDate());
	}

}

 

package ch04;

public class MyArticle {
	String article;
	WriteArticle writeArticle;
	
	//주소값 연결
	public MyArticle(String article, WriteArticle writeArticle) {
		this.article = article;
		this.writeArticle = writeArticle;
	}

	
	public void complete() {
		writeArticle.printArticle(article); 
		//택배기사(writeArticle)가 주소값(메서드 printArticle)을 알아서 상자(String article)에 보낸다
	}
}

 

package ch04;

//MyArticle 객체와 HackerNews 객체 약속을 정함
public interface WriteArticle {

	public void printArticle(String article);
	//인터페이스은 기능정리

}

 

package ch04;

public class MainTest {

	public static void main(String[] args) {

		//해커 뉴스 객체 생성
		HackerNews hackerNews = new HackerNews();//콜백받는
		//해커의 hackerNews 에서 기사작성의 hackerNews에 전달
		//기사 작성 
		MyArticle article = new MyArticle("오늘 날씨가 매우 덥습니다.", hackerNews);//콜리
		article.complete();//약속으로 정한 printArticle이 출력
		
	}

}

'Java > Excercise' 카테고리의 다른 글

swing ch07 MainTest lotto  (0) 2021.09.10
callback ch05 Phonebook  (0) 2021.09.10
callback ch04 CalendarMainTest  (0) 2021.09.09
callback ch03 Activity 상속받아 콜백  (0) 2021.09.09
callback 02 Activity 메서드를 이용한 콜백  (0) 2021.09.09