Klassen und Objekte. Aufgabe - brauche Hilfe

So, wo fangen wir an?
Also ich würde nach dem Einlesen ein Buchobjekt erstellen. Dafür brauchst du in deiner Klasse Book einen Konstruktor.

Code:
public Book (String name, String autor, int isbn, double preis) {
               this.name = name;
               this.autor = autor;
               this.isbn = isbn;
               this.preis = preis;
}

Aufruf in BookSorter

Code:
Book b = new Book(a,b,c,d);

Die Buchobjekt musst du dir noch in einem Feld oder so abspeichern.

Danach würde ich eine switch case Anweisung zum sortieren benutzen.
Du brauchst dann nur 4 Methoden zum sortieren schreiben, denen du das unsortierte Feld übergibst und die es sortiert zurück geben.
 
Code:
public static void main(String[] args) {
	        String a = JOptionPane.showInputDialog("Bitte geben Sie den Titel des ersten Buches ein");
	        String b = JOptionPane.showInputDialog("Bitte geben Sie den Autor des ersten Buches ein");
	        String c = JOptionPane.showInputDialog("Bitte geben Sie die ISBN Nummer des ersten Buches ein");
	        String d = JOptionPane.showInputDialog("Bitte geben Sie den Preis des ersten Buches ein");
	        int m = Integer.parseInt(c);
	        double n = Double.parseDouble(d);
	        Book book = new Book(a,b,m,n);

Code:
public class Book {
	
    private String titel;
    private String autor;
    private int isbn;
    private double preis;

    public Book(String titel, String autor, int isbn, double preis) {
    	this.titel = titel;
        this.autor = autor;
        this.isbn = isbn;
        this.preis = preis;
    }
}

this spricht die Klassenvariable an.
Btw Klassenvariablen sollten private sein!
 
Zuletzt bearbeitet:
Du solltest dir dann noch Gedanken über eine Fehlerbehnadlung machen.
Wenn ein Wert falsch eingegeben wird, knallt es natürlich sofort im Konstruktor (!)
 
Book book = new Book(a,b,c,d);
ist das erstellen einer Instanz der Klasse Book.
Du deklarierst eine Varible mit dem Namen book vom Typ Book.
Ist das gleiche wie

Code:
Book book =
int i =

Der Konstruktor leifert als Rückgebewert Book (public Book())

Das Objekt das der Konstruktor zurück liefert wird der Variablen book zugewiesen.

Also warum sollten Klassenvaribalen private sein. OOP sieht eine Datenkaselung vor. Man soll nur Klassen schreiben auf das innere der Klassen aber nicht zugreifen können. Klassenvariablen sollen immer über getter und setter Methoden verändert werden. So kann man nicht direkt auf die Variable zugreifen.
 
Jetzt müsste ich doch mit der Sortierung beginnen oder?

Du hast 3 Objekt der Klasse Book erstellt. Die hast du aber noch nicht gespeichert
Dann fragst du ab wonach sortiert werden soll. Die Antwort wertest du mittels switch/case aus.

Dann schreibst du für jedes Sortieren eine eingenen Methode z.B.
Code:
sortByPrice()
sortByTitel()
sortByAuthor()
sortByISBN()

und übergibst die Bücher. Die Methoden liefern die Bücher sortiert zurück.
 

Neue Beiträge

Zurück