java_anfaenger Geschrieben 12. November 2020 Geschrieben 12. November 2020 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()); } Zitieren
Whiz-zarD Geschrieben 13. November 2020 Geschrieben 13. November 2020 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. java_anfaenger reagierte darauf 1 Zitieren
Gast noggin Geschrieben 13. November 2020 Geschrieben 13. November 2020 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. Zitieren
TheGuy Geschrieben 13. November 2020 Geschrieben 13. November 2020 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. Zitieren
Gast noggin Geschrieben 13. November 2020 Geschrieben 13. November 2020 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. Zitieren
Whiz-zarD Geschrieben 13. November 2020 Geschrieben 13. November 2020 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. thereisnospace, pr0gg3r und JimTheLion reagierten darauf 3 Zitieren
java_anfaenger Geschrieben 13. November 2020 Autor Geschrieben 13. November 2020 Ich danke euch für eure Hilfe. Hab es irgendwie noch geschafft gehabt. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.