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 |