Так что я пытаюсь напечатать только романы, добавленные в массив, и я не могу понять, как ..
Также мне нужно вернуть количество книг определенного вида.
Я новичок в программировании, поэтому, пожалуйста, успокойся:)
Вот приложение, я должен добавить все книги из консоли
Каждое слово, добавленное из консоли, запускает определенное действие, поэтому для печати книг, которые мне нужно написать, нужно добавить, мне нужно написать «добавить», тип книги, название книги, автора и т. Д.
import java.util.*;
public class App{
public static void main(String [] args){
Scanner s = new Scanner(System.in);
Library bib = Library.getInstance();
String line = "";
line = s.nextLine();
String[] v = line.split("\\s+");
while(true){
switch(v[0]){
case "add":
String title = v[2];
String autor = v[3];
Book c = null;
if("story".equals(v[1])){
c = new Story(title, autor);
} else if("novel".equals(v[1])){
int pages = Integer.parseInt(v[4]);
c = new Novel(title, autor, pages);
} else if("poetry".equals(v[1])){
String publish = v[4];
c = new Poetry(title, autor, publish);
}
bib.adauga(c);
break;
case "print" :
case "return" :
case "exit" : System.exit(0); break;
default : System.out.println("Command " + v[0] + " does not exist");
}
}
}
}
import java.util.*;
public class Library{
private static Library instance;
List<Book> books;
private Library(){
books = new ArrayList<>();
}
public static Library getInstance(){
if(instance == null){
instance = new Library();
}
return instance;
}
public void adauga(Book c){
books.add(c);
}
public void afisare(){
for(Book c : books){
System.out.println(c);
}
}
}
public abstract class Book{
String title;
String autor;
public Book(String title, String autor){
this.title=title;
this.autor=autor;
}
@Override
public String toString(){
return title + " " + autor;
}
}
public class Novel extends Book {
int pages;
public Novel(String title, String autor, int pages){
super(title, autor);
this.pages=pages;
}
@Override
public String toString(){
return super.toString() + " " + pages;
}
}