Hi, also ich habe hier ein Problem. In meiner Main (3ter Codeblock) will er mir nichts ausprinten: bib.zurueckgeben("Qualityland");
ich habe mir mal die Methode angeschaut und in dieser geht er nicht mal in den Rumpf der If-Abfrage (es geht um diese if Bedingung : if(b.getTitel().equals(titel) , in der Methode ausleihen(); ) Aber warum das?
Danke schonmal für Antworten
Gruß
Klasse Buch:
Klasse Bibliothek:
Meine Main:
ich habe mir mal die Methode angeschaut und in dieser geht er nicht mal in den Rumpf der If-Abfrage (es geht um diese if Bedingung : if(b.getTitel().equals(titel) , in der Methode ausleihen(); ) Aber warum das?
Danke schonmal für Antworten
Gruß
Klasse Buch:
Java:
public class Buch {
private boolean ausgeliehen = false;
private String autor;
private String titel;
private LocalDate rueckgabeDatum = null;
//Konstruktor
public Buch(String autor, String titel) {
setTitel(titel);
setAutor(autor);
}
//getter
public String getAutor() {
return autor;
}
public String getTitel() {
return titel;
}
public boolean isAusgeliehen(){
return ausgeliehen;
}
public LocalDate getRueckgabedatum() throws IllegaloanExeption{
if(ausgeliehen){
return rueckgabeDatum;
}else{
throw new IllegaloanExeption("Buch nicht ausgeliehen!");
}
}
//setter
private void setAutor(String autor) {
if(checkAutor(autor)){
throw new IllegalArgumentException("Autor hat ein falsches Format");
}
this.autor = autor;
}
private void setTitel(String titel) {
if(checkTitel(titel)){
throw new IllegalArgumentException("Titel hat ein falsches Format");
}
this.titel = titel;
}
//checker
private boolean checkTitel(String titel){
return titel == null || titel.equals("");
}
private boolean checkAutor(String autor){
return autor == null || autor.equals("");
}
//methoden
public void ausleihen() throws IllegaloanExeption{
if(!ausgeliehen){
ausgeliehen = !ausgeliehen;
rueckgabeDatum = rueckgabeDatum.now().plusDays(14);
}else{
throw new IllegaloanExeption("Objekt ist bereits ausgeliehen");
}
}
public void zurueckgeben() throws IllegaloanExeption{
if(ausgeliehen){
ausgeliehen = false;
rueckgabeDatum = null;
}else{
throw new IllegaloanExeption("Objekt ist noch nicht ausgeliehen");
}
}
@Override
public boolean equals(Object a){
if(a == null){
return false;
}
if(!(a.getClass().equals(this.getClass()))){
return false;
}
Buch buch = (Buch) a;
return (buch.getTitel() == this.getTitel());
}
@Override
public String toString(){
return autor + ":" + titel;
}
}
Klasse Bibliothek:
Code:
public class Bibliothek {
private ArrayList<Buch> bibliothek;
public Bibliothek(){
bibliothek = new ArrayList<>();
}
public Bibliothek(ArrayList<Buch> bibliotek){
this.bibliothek = bibliotek;
}
public void addBuch(Buch b){
bibliothek.add(b);
}
public void addBuecher(ArrayList<Buch> buecher){
buecher.addAll(buecher);
}
public void ausleihen(String titel) throws IllegaloanExeption{
if(isOpen()){
for (Buch b:
bibliothek) {
if(b.getTitel().equals(titel)){
b.ausleihen();
System.out.println("Rückgabedatum: " + b.getRueckgabedatum());
}
}
}else {
System.out.println("Bibliothek ist geschlossen!");
}
}
public void zurueckgeben(String titel) throws IllegaloanExeption{
if(isOpen()){
for (Buch b:
bibliothek)
if(b.getTitel().equals(titel)){
System.out.println("!");
if(LocalDate.now().isAfter(b.getRueckgabedatum())){
System.out.println("Buch wurde nicht fritsgerecht zurückgegeben");
}else{
System.out.println("Buch wurde fritsgerecht zurückgegeben");
}
b.zurueckgeben();
return;
}else{
throw new IllegaloanExeption("Buch ist nicht in der Liste");
}
}else{
System.out.println("Bibliothek leider geschlossen");
}
}
public boolean isOpen(){
return !LocalTime.now().isBefore(LocalTime.of(8,30)) && !LocalTime.now().isAfter(LocalTime.of(22, 0));
}
public void ExecuteForAllBooks(Consumer<Buch> consumer){
bibliothek.forEach(consumer);
}
}
Meine Main:
Code:
public class Main {
public static void main(String[] args) {
Bibliothek bib = new Bibliothek();
bib.addBuch(new Buch("Christian Ullenboom", "Java ist auch eine Insel"));
bib.addBuch(new Buch("Robert Sedgewick", "Einfuehrung in die Programmierung mit Java"));
bib.addBuch(new Buch("Marc-Uwe Kling", "Qualityland"));
bib.addBuch(new Buch("David Eddings", "Kind der Prophezeiung"));
System.out.println("Hat die Bibliothek gerade geoeffnet: " + bib.isOpen());
bib.ExecuteForAllBooks(b -> {
if (b.getTitel().contains("Java")) {
System.out.println(b);
}
});
try {
bib.ausleihen("Java ist auch eine Insel");
bib.ausleihen("Qualityland");
bib.zurueckgeben("Qualityland"); //diese Zeile ist gemeint ---------------------------------------------
bib.zurueckgeben("Kind der Prophezeiung");
} catch (IllegaloanExeption e) {
System.out.println("Fehler:" + e.getMessage());
}
}
}