Klassen Bücherrei Ausleihzeit erstellen

tonyschatz

Neues Mitglied
Hey, ich habe eine Klasse Buch erstellt. Jetzt jedoch scheitere ich dabei eine Ausleihzeit zu erstellen.
Vorgaben:
Jedes Buch soll eine eigene Ausleihzeit besitzen. Diese ist durch einen Zahlencode verschlüsselt. 0 = keine Ausleihe möglich, 1 = Ausleihe übers Wochenende, 2 = Ausleihe für 7 Tage, 3 = Ausleihe beliebig lange möglich. Erweitere Deine Klasse Buch um
1) ein Datenfeld ausleihZeit
2) einen Getter und einen Setter
3) eine Standardinitialisierung mit dem Code 3
4) eine angepasste detailAusgabe, welche die Ausleihzeit in Worten angibt.

Ausgabe 4 ist verständlich doch beim Programmieren von ausleihZeit tretten bei mir nur Fehler auf.

Mein Quelltext:

Java:
class Buch
{
    // Exemplarvariablen
    private String autor;
    private String titel;
    private String seiten;
    private String details;
    private String signatur;
    private int ausgeliehen;
    private String ausleihZeit;
 


    /**
     * Setze den Autor und den Titel, wenn ein Exemplar erzeugt wird.
     */
    public Buch(String buchautor, String buchtitel, String seitenanzahl, String ausleihZeit)
    {
        autor = buchautor;
        titel = buchtitel;
        seiten = seitenanzahl;
        signatur = "";
        ausgeliehen = 0;
     
    }

    public String GibAutor()
    {
            return autor;
    }
 
    public String GibTitel ()
    {
       return titel;
    }
 
    public void schreibtitel()
    {System.out.println ("Dies ist der Titel des Buches:   " + titel);
    }
 
    public void schreibautor()
    {System.out.println ("Dies ist der Autor des Buches:    " + autor);
    }
 
    public String GibSignatur()
    {return signatur;
     
    }
 
    public int GibAusgeliehen()
    {return ausgeliehen;
    }
 

    public void SchreibSeite()
    {
        System.out.println(seiten);
    }
 
    public void DetailAusgabe()
    {
        if(signatur.length()==10)
        {
        System.out.println ("Dies ist die Anzahl der Seiten:  " + seiten);
        System.out.println ("Dies ist der Titel des Buches:   " + titel);
        System.out.println ("Dies ist der Autor des Buches:    " + autor);
        System.out.println ("Dies isr die Signatur des Buches: " + signatur);
        System.out.println ("Dieses Buch wurde: " +ausgeliehen + "mal ausgeliehen");
     
    }
    else
    {
        System.out.println ("Dies ist die Anzahl der Seiten:  " + seiten);
        System.out.println ("Dies ist der Titel des Buches:   " + titel);
        System.out.println ("Dies ist der Autor des Buches:    " + autor);
        System.out.println ("Dies isr die Signatur des Buches: Unbekannt    Bitte geben sie eine 10 stellige Sinatur ein " );
        System.out.println ("Dieses Buch wurde: " +ausgeliehen + "mal ausgeliehen");
    }
}
 
    public void SetzeSignatur(String neueSignatur)
 
    {
        if(neueSignatur.length()==10)
        {
         signatur = neueSignatur;
        }
        else
        {
            System.out.println("Bitte geben sie eine Signatur ein, die genau aus 10 Zeichen besteht");
       }
    }
 
    public void ausleihen ()
    {
    ausgeliehen++;
    }
 
    public void ausleihZeit ()
    {
    if (ausleihZeit.length ()==0)
        {
            System.out.println ("0 = keine Ausleihe möglich");
        }
        if(ausleihZeit.length ()==1)
        {
        System.out.println ("1 = Ausleihe übers Wochenende");
    }
    if (ausleihZeit.length ()==2)
    {
        System.out.println ("2 = Ausleihe für 7 Tage");
    }
    if (ausleihZeit.length ()==3)
    {
        System.out.println ("3 = Ausleihe beliebig lange möglich");
    }
    else
    {
        System.out.println  ("Bitte geben sie 0,1,2,3 ein");
    }
 

}
}

Danke schon einmal im Vorraus :)
 
Zuletzt bearbeitet von einem Moderator:

Bitfehler

Bekanntes Mitglied
Deine if-Bedinungen sind wahrscheinlich inkorrekt.
ausleihZeit.length () gibt die Länge einer Zeichenkette zurück. In deinen Fällen ist die wahrscheinlich immer 1. Warum verwendest du length()?
Diese Bedingungen scheinen mir nicht sinnvoll und dein Problem.
 

JStein52

Top Contributor
Warum hast du ausleihZeit überhaupt als String modelliert ? Ein einfache Zahl (int) ist hier doch viel sinnvoller ! Und du solltest sie im Konstruktor natürlich noch mit 3 initialisieren.
 

Oben