Veröffentlicht 12. November 20204 j So hi erstmal.. ich habe folgendes Problem. Ich möchte die Liste in array.class in meiner main nutzen. Sagen wir ich möchte die Preise alle bücher zusammen adieren, wie könnte ich aus dem Array welches ich habe die Preise herauslesen und addieren? Das Array ist so kategorisiert: Book: title;booktype;price;edition ebook: title;booktype;price;edition;version audiobook: title;booktype;price;edition;mode Ich hoffe jemand kann mir paar Tipps geben. Danke array.class: import java.util.ArrayList; import java.util.List; public static List<String> selledbooks(){ List<String> booksdata = new ArrayList<String>(); booksdata.add("booktitle1;ebook;19.99;2020;3"); booksdata.add("booktitle2;ebook;4.99;2020;3"); booksdata.add("booktitle3;audiobook;22.99;2016"); booksdata.add("booktitle4;ebook;4.99;2020;streaming"); return booksdata; } main.class: import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<String> selledbooks = new ArrayList<String>(); } private static void booksdata() { System.out.println(Daten.selledbooks()); }
13. November 20204 j Ich würde eher vorschlagen, dass du dich mehr mit dem Prinzip der Objektorientierung auseinandersetzt. Es sieht sehr danach aus, als würdest du noch nicht so ganz verstehen, was du da machst. Um auf die einzelnen Buch-Daten zuzugreifen zu können, benötigst du erst mal eine Book Klasse public class Book { private string title; private BigDecimal price; private int edition; public Book(string title, BigDecimal price, int edition) { this.title = title; this.price = price; this.edition = editon; } public string getTitle { return this.title; } public BigDecimal getPrice { return this.price; } public int getEdition { return this.edition; } } eBooks und Audiobooks haben ja noch andere Eigenschaften als ein normales Buch. Daher musst du für diese noch zusätzliche Ableitungen schreiben, die dann von Book erben. (Stichwort "Vererbung") Dann könntest du die Liste so erstellen: (Ich beschränke mich hierbei auf die Eigenschaften von Book) public static List<Book> getSelledBooks() { List<Book> result = new ArrayList<Book>(); result.add(new EBook("booktitle1", 19.99, 2020)); result.add(new EBook("booktitle2", 4.99, 2020)); result.add(new AudioBook("booktitle3", 22.99, 2016)); result.add(new EBook("booktitle4", 4.99, 2020)); return result; } Dann kannst du auch die Preise einfach mit der getPrice()-Methode auslesen. Aber ich würde dir empfehlen, ein Tutorial durchzuarbeiten, um das Prinzip der Objektorientierung zu verstehen.
13. November 20204 j vor 2 Stunden schrieb Whiz-zarD: (Stichwort "Vererbung") Ich würde sogar etwas weiter gehen und mich mit Polymorphie auseinandersetzen, da dieses Prinzip eines der zentralen Prinzipien der Objektorientierung ist.
13. November 20204 j vor 2 Stunden schrieb noggin: Ich würde sogar etwas weiter gehen und mich mit Polymorphie auseinandersetzen, da dieses Prinzip eines der zentralen Prinzipien der Objektorientierung ist. Was hat Inheritence mit diesem use-case zutun? Ich würde Book Objects erstellen mit den zugehörigen Daten. Dort überschreibst du die toString - Methode. Nimm ein Format was ordentlich lesbar ist. Du kannst nun eine Liste mit diesen Büchern füllen und dann über die genannte toString - Methode dir es ordentlich ausgeben lassen.
13. November 20204 j vor einer Stunde schrieb TheGuy: Was hat Inheritence mit diesem use-case zutun? vor 6 Stunden schrieb Whiz-zarD: Dann könntest du die Liste so erstellen: (Ich beschränke mich hierbei auf die Eigenschaften von Book) public static List<Book> getSelledBooks() { List<Book> result = new ArrayList<Book>(); result.add(new EBook("booktitle1", 19.99, 2020)); result.add(new EBook("booktitle2", 4.99, 2020)); result.add(new AudioBook("booktitle3", 22.99, 2016)); result.add(new EBook("booktitle4", 4.99, 2020)); return result; } Das da oben is polymorphie, das sollte man dann auch kennen.
13. November 20204 j Nein, das ist keine Polymorphie. Das ist Vererbung. Polymorphie beschreibt die Überschreibung von Methoden. Ich überschreibe aber keine Methoden, sondern möchte mit den Unterklassen weitere Eigenschaften hinzufügen.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.