Radi se o zadatku 1.2. s ovog linka https://www3.ntu.edu.sg/home/ehchua/programming/java/J3f_OOPExercises.html#zz-1.2
A class called Author is designed as shown in the class diagram. It contains: Three private instance variables: name (String), email (String), and gender (char of either 'm' or 'f'); One constructor to initialize the name, email and gender with the given values; A class called Book is designed as shown in the class diagram. It contains: Four private instance variables: name (String), author (of the class Author you have just created, assume that each book has one and only one author), price (double), and qtyInStock (int); Two constructors: public Book (String name, Author author, double price) {...} public Book (String name, Author author, double price, int qtyInStock) {...}
Sve klase se nalaze u istom paketu, jedina greska koju javlja se nalazi u zeleno oznacenom redu i javlja "Cannot instantiate the type Book". Ako je bitno, koristim Eclipse na Windowsu. Googlao sam, ali bezuspjesno. Nije ni apstraktna klasa niti interface i nalazi se u istom paketu s ostalima. Ja nemam ideja vise. Dolje se nalazi sav kod. Hvala :)
Glavna funkcija
public class TestAuthor {
public static void main(String[] args) {
Author a1 = new Author("George Orwell", "orwell@example.com", 'm');
System.out.println(a1); // calls toString()
a1.setEmail("paul@nowhere.com");
System.out.println(a1);
Book book1 = new Book("1984", a1, 29.99, 3);
}
}
Author.java
public class Author {
private String name;
private String email;
private char gender;
public Author(String name, String email, char gender) {
this.name = name;
this.email = email;
this.gender = gender;
}
// getters
public String getName() {
return name;
}
public String getEmail() {
return email;
}
public char getGender() {
return gender;
}
// setters
public void setEmail(String email) {
this.email=email;
}
// toString returning "author-name (gender) at email", e.g., "Tan Ah Teck (m) at ahTeck@somewhere.com".
public String toString() {
return (name + " (" + gender + ") at " + email );
}
}
I Book.java
public class Book<Author> {
private String name;
private Author author;
private double price;
private int qtyInStock;
public Book(String name, Author author, double price) {
this.name = name;
this.author = author;
this.price = price;
qtyInStock=0;
}
public Book(String name, Author author, double price, int qtyInStock) {
this.name = name;
this.author = author;
this.price = price;
this.qtyInStock = qtyInStock;
}
public String getName() {
return name;
}
public Author getAuthor() {
return author;
}
public double getPrice() {
return price;
}
public int getQtyInStock() {
return qtyInStock;
}
public String toString() {
return (this.name + " by " + author.toString());
}
}