e.getLibriByAutore
是问题所在,该程序在搜索作者姓名(getLibryByAutore = getBooksByAuthor)时会打印该作者的书
import java.util.*;
import java.io.*;
public class Libreria {
public static void main(String[]arg){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String nome="", cognome="", periodo="", titolo="", nomenew="", cognomenew="", editore="";
int annoLibro=0, giorno, mese, anno;
Calendar data=Calendar.getInstance();
Autore a= new Autore(nome, cognome, periodo, data);
Libro l = new Libro(titolo, a, annoLibro);
Editore e= new Editore();
Libro[] libri= new Libro[10];
System.out.print("Inserisci il nome dell' editore: ");
try{
editore=br.readLine();
}catch(Exception ex){
System.err.println("ERRORE");
}
e.setNome(editore);
for(int j=0; j<3; j++){
System.out.print("Inserisci il titolo del libro: ");
try{
titolo= br.readLine();
}catch(Exception ex){
System.err.println("ERRORE");
}
libri[j]=new Libro(titolo, a, annoLibro);
libri[j].setTitolo(titolo);
l.setTitolo(titolo);
System.out.print("Inserisci l' anno del libro: ");
try{
annoLibro= Integer.valueOf(br.readLine());
}catch(Exception ex){
System.err.println("ERRORE");
}
libri[j].setAnno(annoLibro);
l.setAnno(annoLibro);
System.out.print("Inserisci il nome dell' autore: ");
try{
nome= br.readLine();
}catch(Exception ex){
System.err.println("ERRORE");
}
a.setNome(nome);
System.out.print("Inserisci il cognome dell' autore: ");
try{
cognome= br.readLine();
}catch(Exception ex){
System.err.println("ERRORE");
}
a.setCognome(cognome);
System.out.print("Inserisci il periodo dell' autore: ");
try{
periodo= br.readLine();
}catch(Exception ex){
System.err.println("ERRORE");
}
a.setPeriodo(periodo);
try{
System.out.print("Inserisci il giorno di nascita dell' autore: ");
giorno= Integer.valueOf(br.readLine());
System.out.print("Inserisci il mese di nascita dell' autore: ");
mese= Integer.valueOf(br.readLine());
System.out.print("Inserisci l' anno di nascita dell' autore: ");
anno= Integer.valueOf(br.readLine());
data.set(anno, mese, giorno);
a.setData(data);
}catch(Exception ex){
System.err.println("ERRORE");
}
System.out.println("AUTORE SUCCESSIVO");
}
e.setLibri(libri);
System.out.println("Di quale autore vuoi stampare i libri? (nome,cognome)");
try{
nomenew=br.readLine();
cognomenew=br.readLine();
}catch(Exception ex){
System.err.println("ERRORE");
}
a.setNome(nomenew);
a.setCognome(cognomenew);
String arr[]=new String[10];
for(int j=0; j<libri.length; j++){
arr[j]=Arrays.toString(e.getLibriByAutore(nomenew , cognomenew));
}
for(int j=0; j<libri.length; j++){
System.out.println(arr[j]);
}
}
必选类(这是具有getLibriByAutore方法的Editore类)
class Editore {
private String nome;
private Libro[] libri;
int k=0;
public Editore(){}
public Editore(String nome, Libro[] libri){
this.nome=nome;
this.libri=libri;
}
public String getNome(){
return this.nome;
}
public Libro[] getLibri(){
return this.libri;
}
public void setNome(String n){
this.nome=n;
}
public void setLibri(Libro[] l){
this.libri=l;
}
public Libro[] getLibriByAutore(String n, String c){
Libro[] ris = new Libro[libri.length];
for(int i=0; i<libri.length; i++){
if(libri[i].getAutore().getNome().equals(n)&&libri[i].getAutore().getCognome().equals(c)){
ris[k]=libri[i];
k++;
}
}
return ris;
}
}