Java Question-02
2 min readApr 9, 2023
import java.time.LocalDate;
abstract class LibraryItem {
private String title;
private String author;
private int year;
public LibraryItem(String title, String author, int year) {
this.title = title;
this.author = author;
this.year = year;
}
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;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public abstract LocalDate checkOut(String borrower);
}
import java.time.LocalDate;
public class Book extends LibraryItem{
private int numPages;
public Book(String title, String author, int year,int numPages) {
super(title,author,year);
this.numPages=numPages;
}
public int getNumPages() {
return numPages;
}
public void setNumPages(int numPages) {
this.numPages = numPages;
}
public LocalDate checkOut(String borrower)
{
return LocalDate.now().plusDays(14);
}
}
import java.time.LocalDate;
public class DVD extends LibraryItem{
private int runtime;
public DVD(String title, String author, int year,int runtime) {
super(title,author,year);
this.runtime=runtime;
}
public int getRuntime() {
return runtime;
}
public void setRuntime(int runtime) {
this.runtime = runtime;
}
public LocalDate checkOut(String borrower)
{
return LocalDate.now().plusDays(7);
}
}
import java.time.LocalDate;
public class Library {
private LibraryItem[] items;
public Library(LibraryItem[] items)
{
this.items = items;
}
public LocalDate checkOutItem(int index,String borrower)
{
return items[index].checkOut(borrower); //2023-04-13
}
}
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args)
{
LibraryItem[] items={
new Book("The Great Gatsby","F.Scott",1999,180),
new DVD("The God Father","Francis",1972,175)
};
Library library=new Library(items);
LocalDate dueDate=library.checkOutItem(0,"John Doe"); //2023-04-13
System.out.println("Due date for "+items[0].getTitle()+":"+dueDate.format(DateTimeFormatter.ISO_DATE));
LocalDate dueDate1=library.checkOutItem(1,"Jane Smith");
System.out.println("Due date for "+items[1].getTitle()+":"+dueDate.format(DateTimeFormatter.ISO_DATE));
}
}