IT/솔루션) Power Java
Power JAVA 10장 ) 인터페이스와 다형성 - Programming_6
돔찌
2019. 5. 12. 18:00
<2016. 10. 11. 12:33>
Power JAVA 10장 ) 인터페이스와 다형성 - Programming_6
==================Book.java=====================
/*
* 책을 대여해주는 업체를 위한 Book이라는 클래스를 작성한다.
* Book은 관리번호(number), 제목(title), 저자(author)를 필드로 가진다.
* Book 클래스는 각 필드에 대한 접근자와 설정자를 가진다.
* Object 클래스의 equals() 메소드를 재정의하여서 만약 관리번호가 동일하면 동일한 책으로 간주한다.
* 다음으로 Book으로부터 상속을 받는 Novel, Poet, ScienceFiction 클래스를 작성한다.
* 이들 클래스들은 연체된 날짜에 따라서 연체료를 계산하는 getLateFees() 메소드를 재정의한다.
* getLateFees() 메소드는 연체 일수를 매개변수로 받는다.
* Novel의 경우에는 300원/일이고, Poet는 200원/일, ScienceFiction는 600원/일이다.
* main 메소드에서 작성된 클래스를 테스트하라.
*/
package Programming_6;
//책을 대여해주는 업체를 위한 Book이라는 클래스를 작성한다.
public class Book {
//Book은 관리번호(number), 제목(title), 저자(author)를 필드로 가진다.
private int number;
private String title;
private String author;
//Book 클래스는 각 필드에 대한 접근자와 설정자를 가진다.
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
//Object 클래스의 equals() 메소드를 재정의하여서 만약 관리번호가 동일하면 동일한 책으로 간주한다.
public void equals(Book somebook ) {
if(this.number == somebook.number)
System.out.println("같은 책입니다."); else
System.out.println("다른 책입니다.");
}
}
//다음으로 Book으로부터 상속을 받는 Novel, Poet, ScienceFiction 클래스를 작성한다.
//이들 클래스들은 연체된 날짜에 따라서 연체료를 계산하는 getLateFees() 메소드를 재정의한다.
//getLateFees() 메소드는 연체 일수를 매개변수로 받는다.
//Novel의 경우에는 300원/일이고, Poet는 200원/일, ScienceFiction는 600원/일이다.
class Novel extends Book {
public int getLateFees(int lateday) {
return 300*lateday;
}
public String toString() {
return getNumber()+" / "+getTitle()+" / "+getAuthor();
}
}
class Poet extends Book {
public int getLateFees(int lateday) {
return 200*lateday;
}
public String toString() {
return getNumber()+" / "+getTitle()+" / "+getAuthor();
}
}
class ScienceFiction extends Book {
public int getLateFees(int lateday) {
return 600*lateday;
}
public String toString() {
return getNumber()+" / "+getTitle()+" / "+getAuthor();
}
}
==============BookTest.java======================
package Programming_6;
public class BookTest {
public static void main(String[] args) {
Novel mybook1 = new Novel();
Poet mybook2 = new Poet();
ScienceFiction mybook3 = new ScienceFiction();
mybook1.setNumber(1000);
mybook1.setTitle("어린왕자");
mybook1.setAuthor("작가1");
mybook2.setNumber(1000);
;
mybook2.setTitle("PowerJava");
mybook2.setAuthor("원순철");
System.out.println(mybook1+"\n"+mybook2);
System.out.print("위 두책은 ");
mybook1.equals(mybook2);
System.out.println("==============================================");
System.out.println("5일이 늦은 소설책의 연체료는 "+mybook1.getLateFees(5)+"원 입니다.");
System.out.println("5일이 늦은 시집의 연체료는 "+mybook2.getLateFees(5)+"원 입니다.");
System.out.println("5일이 늦은 공상과학소설의 연체료는 "+mybook3.getLateFees(5)+"원 입니다.");
}
}