ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Power JAVA 10장 ) 인터페이스와 다형성 - Programming_6
    IT/솔루션) Power Java 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)+"원 입니다.");
    	}
    }

    댓글

다치지 말고 운동하자.