Zum Inhalt springen

Wie kann ich auf eine Arraylist von einer anderen Klasse zugreifen ?


java_anfaenger

Empfohlene Beiträge

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());
        
    }

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...