Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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

 

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.

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.

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. 

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.