Array-Objekte-Aufruf

PaulDo

Aktives Mitglied
Wie rufe ich die Methode "aufRufProdukte()" in folgenden Klassen in der Main-Methode auf?
Die Main-Methode steht in der 3.Klasse "public class Test {}"

Java:
//1.Klasse
public class Produkte {
// Attribute
   public String name;
    public int preis;

//Koonstruktor
    public Produkte(String name,int preis) {
        this.name = name;
        this.preis = preis;

//Getter/Setter Ersetzt durch ...
...
//2.Klasse
public class ProdukteMethoden {

// aufzurufende Methode
 void aufRufProdukte(){
        Produkte [] produkte = new Produkte[4];
        for(int i = 0; i<= produkte.length; i++){
            produkte[i] = new Produkte("hall", (i+1)+(i+1)*10);

        }
        for(int i = 0; i<= produkte.length; i++){
         System.out.println(produkte[i].preis);
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:

DrPils

Bekanntes Mitglied
Wenn du nicht statische Methoden aufrufen möchtest, benötigst du immer ein Objekt der Klasse, welche die Methode besitzt.
Eine Objekt erzeugst du mit den Aufruf des Konstruktors.

Java:
class MethodenKlasse {
    public void doStuff() {
        System.out.println("doing stuff...");
    }
}

class Main {
    public static void main(String[] args) {
        MethodenKlasse methodenKlasse = new MethodenKlasse();
        methodenKlasse.doStuff();
    }
}
 

PaulDo

Aktives Mitglied
Wenn du nicht statische Methoden aufrufen möchtest, benötigst du immer ein Objekt der Klasse, welche die Methode besitzt.
Eine Objekt erzeugst du mit den Aufruf des Konstruktors.

Java:
class MethodenKlasse {
    public void doStuff() {
        System.out.println("doing stuff...");
    }
}

class Main {
    public static void main(String[] args) {
        MethodenKlasse methodenKlasse = new MethodenKlasse();
        methodenKlasse.doStuff();
    }
}
@DrPils Danke für die Antwort. Nur so funktioniert es leider nicht. Das Problem ist das Array vom Typ Klasse Objekt. Ich habe es noch einmal verändert. Es funktioniert leider immer noch nicht.
 

DrPils

Bekanntes Mitglied
Zeig mal was du getan hast

Edit:
Sehe gerade, dass du deinen Code als PDF beigefuegt hast.
Poste ihn immer in Code Tags, als Anhang hilft es keinem was, als pds schonmal garnicht.

Sehe nicht wieso du die Methode nicht aufrufen kannst. Gibt es einen Fehler, oder tut es nicht das was erwartet wird?
 
Zuletzt bearbeitet:

Jw456

Top Contributor
Der Aufruf der Methode wird sicherlich klappen.
Nur du wirst nichts sehen keine Ausgabe machen. Da du ein Array mit 0 Elementen erstellt hast. Somit wird deine for Schleife gar nicht durchlaufen.


Und in deine ersten gepostet Code wirst du eine Exception bekommen. Denn du hast ein Array mit 4 Elementen erstellt, gehst aber in der for Schleife von 0 bis 4 somit 5 Elemente durch. Beim 5. Wird eine OutOfBounds-Exception kommen.
i <= produkte length geht von 0 bis 4
i < produkte length geht von 0 bis 3



 
Zuletzt bearbeitet:

Jw456

Top Contributor
Was soll der Aufruf von set Produkte in der main? Und du übergibst das Array was du schon in der Klasse hast. Macht keinen Sinn.

Zu dem Zeitpunkt ist die Variable Array auch noch null. Ein new machst du ja erst in der aufRuf... Methode.
 
Zuletzt bearbeitet:

PaulDo

Aktives Mitglied
Bei der Methode setzte ich produkte auf 6 Elemente
void aufRufProdukte(){
produkte = new Produkte[6];

und die Test Klasse änderte ich in
public class Test {
public static void main(String[] args) {
ProdukteMethoden pm1 = new ProdukteMethoden();


pm1.aufRufProdukte();
}
}
Ich erhalte die Fehlermeldung "ArrayIndexOutOfBoundsException". Was ich überhaupt nicht verstehe. Ich muss eine Verbindung von der Klasse Produkte zur Klasse ProduktMethoden hinbekommen. Wenn es kein Array wäre würde es so funktionieren:

Produkte p1 = new Produkte("P", 20);

pm1.setProdukte(p1); und mit pm1 könnte ich dann auf die Methode aufRufProdukte zugreifen. Aber in diesem Fall wird das p1 bei pm1.setProdukte(p1) nicht akzeptiert.
 

Jw456

Top Contributor
Das habe ich dir doch schon erklärt nicht kleiner gleich, sondern nur kleiner als.
Damit die for Schleife von 0, 1,2, 3, 4,5 geht und nicht bis 6

Array fangen bei 0 an
 
Zuletzt bearbeitet:

PaulDo

Aktives Mitglied
@Jw456 Danke, die Zahlen wurden nun ausgeworfen. Vor den Zahlen soll laut meines Codes ein Buchstabe stehen. Das erfolgt noch nicht.
Wie stellt Klasse ProdukteMethoden hier den Bezug zur Klasse Produkte her?



public class ProdukteMethoden {
Produkte [] produkte;

public Produkte[] getProdukte() {

return produkte;
}

public void setProdukte(Produkte [] produkte) {

this.produkte = produkte;
}
void aufRufProdukte(){
produkte = new Produkte[3];
for(int i = 0; i< produkte.length; i++){
produkte = new Produkte("hall", (i+1)+(i+1)*10);
}
for(int i = 0; i< produkte.length; i++){
System.out.println(produkte.preis);
}
}
}

public class Test {
public static void main(String[] args) {
ProdukteMethoden pm1 = new ProdukteMethoden();
Produkte p1 = new Produkte("H", 20);
pm1.setProdukte(p1); // funktioniert nicht

pm1.aufRufProdukte();




}
}
 

Jw456

Top Contributor
Java:
Produkte p1 = new Produkte("H", 20);
pm1.setProdukte(p1); // funktioniert nicht

pm1.aufRufProdukte();

Was wird den bei der Methode setProdukte als Parameter erwartet? Ein Array vom Datentyp Produkte.
Was hast du erstellt ein einzelnes Objekt davon kein Array. Kann nicht gehen.


Das Array erstelkst du ja erst in der aufRufProdukte Methode und füllst es da auch.
Wahrscheinlich soll das nur eine Ausgabe Methode sein.
Nicht die wo es erstellt und gefüllt wird.
 

PaulDo

Aktives Mitglied
@ Jw456 Ja, das kann ich nachvollziehen. Nur leider wird der Buchstabe immer noch nicht geschrieben. Ich denke, dies liegt daran, dass vom Objekt der Klasse Produkte Methoden keine Verbindung zum Objekt der Klasse Produkte besteht.



public class ProdukteMethoden {
Produkte [] produkte;

public Produkte[] getProdukte() {

return produkte;
}

public void setProdukte(Produkte [] produkte) {

this.produkte = produkte;
}
void aufRufProdukte(){
//produkte = new Produkte[3];
for(int i = 0; i< produkte.length; i++){
produkte = new Produkte("P", (i+1)+(i+1)*10);
}
for(int i = 0; i< produkte.length; i++){
System.out.println(produkte.preis);
}
}
}

public class Test {
public static void main(String[] args) {
ProdukteMethoden pm1 = new ProdukteMethoden();
//Produkte p1 = new Produkte("H", 20); // wird nicht verwendet
pm1.setProdukte(new Produkte[5]); // funktioniert

pm1.aufRufProdukte();




}
}
 

Jw456

Top Contributor
Java:
pm1.setProdukte(new Produkte[5]); // funktioniert
            // sinnlos ein Array mit 5 Elementen erstelln
            // in der folge Methode  erstellst du wider ein neues mit 3 und weist es der geichen Variable zu.
            // somit wird das Objekt wider vom GC geöscht
pm1.aufRufProdukte();

Code:
for(int i = 0; i< produkte.length; i++){
produkte = new Produkte("P", (i+1)+(i+1)*10);
}

Wenn du dem Elementen des Arrays andere Werte geben willst musst du das in der For schleife machen.
Du gibst jeden Element das "P" mit.

willst du es im nachträglich ändern brauchst du.
Das Array den Index bekommst somit die Instanz von dem Objekt was im Array ist , nun kannst du mit dem setter den Namen ändern.

Code:
public class ProdukteMethoden {
        Produkte [] produkte;  

    public Produkte[] getProdukte() {
    return produkte;
    }

    void changeOneProduktInArray(int index, String st){
        Produkt pd = produkte[index];
        pd.setName(st);
        }
 

PaulDo

Aktives Mitglied
@Jw456 Ja, so ist es besser. Nur warum wird kein Buchstabe ausgeworfen? Woher kennt das Objekt pm1 die Klasse Produkte. Ich gehe eigentlich davon aus, dass ich ein Objekt von Produkte erstellen müsste und dieses Objekt mit einem Objekt der Klasse ProdukteMethoden verbinden muss. Dann würde die Methode wahrscheinlich auch den Buchstaben ausgeben.


Java:
public class ProdukteMethoden {
    Produkte [] produkte;

    public Produkte[] getProdukte() {

        return produkte;
    }

    public void setProdukte(Produkte [] produkte) {

        this.produkte = produkte;
    }
    void aufRufProdukte(){
        //produkte = new Produkte[3];
        for(int i = 0; i< produkte.length; i++){
            produkte[i] = new Produkte("P", (i+1)+(i+1)*10);
        }
        for(int i = 0; i< produkte.length; i++){
         System.out.println(produkte[i].preis);
        }
    }
}
public class Test {
    public static void main(String[] args) {
        ProdukteMethoden pm1 = new ProdukteMethoden();
     //Produkte p1 = new Produkte("H", 20);
       pm1.setProdukte(new Produkte[6]); // funktioniert nicht

        pm1.aufRufProdukte();
 
Zuletzt bearbeitet von einem Moderator:

PaulDo

Aktives Mitglied
Deshalb Codetags verwenden [ i ] wird vom Forum als Italic-Tag interpretiert.
Meinst Du :
Java:
void aufRufProdukte(){
 
    for(int i = 0; i< produkte.length; i++){
        produkte[i] = new Produkte("P", (i+1)+(i+1)*10);
    }

Es werden nur die Zahlen ausgegeben, der Buchstabe erscheint nicht.
 
Zuletzt bearbeitet von einem Moderator:

PaulDo

Aktives Mitglied
Java:
pm1.setProdukte(new Produkte[5]); // funktioniert
            // sinnlos ein Array mit 5 Elementen erstelln
            // in der folge Methode  erstellst du wider ein neues mit 3 und weist es der geichen Variable zu.
            // somit wird das Objekt wider vom GC geöscht
pm1.aufRufProdukte();

Code:
for(int i = 0; i< produkte.length; i++){
produkte = new Produkte("P", (i+1)+(i+1)*10);
}

Wenn du dem Elementen des Arrays andere Werte geben willst musst du das in der For schleife machen.
Du gibst jeden Element das "P" mit.

willst du es im nachträglich ändern brauchst du.
Das Array den Index bekommst somit die Instanz von dem Objekt was im Array ist , nun kannst du mit dem setter den Namen ändern.

Code:
public class ProdukteMethoden {
        Produkte [] produkte; 

    public Produkte[] getProdukte() {
    return produkte;
    }

    void changeOneProduktInArray(int index, String st){
        Produkt pd = produkte[index];
        pd.setName(st);
        }
@Jw456 Ja klar, wenn der Name nicht in "System..." aufgerufen wird, kann es nicht funktionieren. Deinen zweiten Teil schaue ich mir noch mal in Ruhe an. Erst einmal vielen Dank.
 

Neumi5694

Top Contributor
Meinst Du :
void aufRufProdukte(){

for(int i = 0; i< produkte.length; i++){
produkte = new Produkte("P", (i+1)+(i+1)*10);
}

Es werden nur die Zahlen ausgegeben, der Buchstabe erscheint nicht.
Schau dir den eben geposteten Text einfach mal an ...
Fällt dir daran denn nichts Ungewöhnliches auf?
Z.B. dass du einem Array einen kursiven einfachen Wert zuweist?
Wie gesagt: Immer Code-Tags verwenden zum Posten von Code.
 

Jw456

Top Contributor
Edit zu Post

Ich sehe gerade das du in der Klasse Produkt ja eine Methode ausgabe hast benutze die doch auch.
Java:
for(int i = 0; i< produkte.length; i++){ produkte[i].ausgabe()); }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
PaperHat Objekte in Array vergleichen Java Basics - Anfänger-Themen 9
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
Orkanson Objekte in ein Array einfügen Java Basics - Anfänger-Themen 5
K Comparable - Objekte aus Array vergleichen und größtes auswählen Java Basics - Anfänger-Themen 1
S Klassen Objekt- Tabelle / Dynamisches 2Dimensionales Array für Objekte Java Basics - Anfänger-Themen 6
F Objekte in einem Array speichern Java Basics - Anfänger-Themen 1
N Objekte in Array rein Java Basics - Anfänger-Themen 6
B Verschiedene Objekte in 2 dimensionalem Array speichern Java Basics - Anfänger-Themen 10
R Bilder aus Array als anklickbare Objekte Java Basics - Anfänger-Themen 3
J Array Objekte erstellen Java Basics - Anfänger-Themen 6
F Adressverwaltungsprogramm: Objekte einer Klasse in Array Java Basics - Anfänger-Themen 6
U Objekte in Array erstellen und Methode in verschiedenen klassen aufrufen Java Basics - Anfänger-Themen 5
T Objekte in Array verwalten Java Basics - Anfänger-Themen 4
I Objekte in einem Array sortieren Java Basics - Anfänger-Themen 19
B Ausgabe von Array aus Objekte Java Basics - Anfänger-Themen 2
W Objekte in einer Array sortieren Java Basics - Anfänger-Themen 3
T OOP Objekte erzeugen und in einem Array ausgeben. Java Basics - Anfänger-Themen 2
M Zugriff auf Objekte aus doppelten Array Java Basics - Anfänger-Themen 16
P Objekte im Array speichern und auf den Inhalt zugreifen ? Java Basics - Anfänger-Themen 4
I Erstellte Objekte in Array's miteinander vergleichen Java Basics - Anfänger-Themen 11
R Objekte in Array ablegen - Vererbung Java Basics - Anfänger-Themen 5
L Mit Array neue Objekte erzeugen Java Basics - Anfänger-Themen 3
S Point-Objekte in Array einfügen Java Basics - Anfänger-Themen 13
H Objekte in ein array ablegen Java Basics - Anfänger-Themen 7
B Array-objekte,. Es wird ein Fehler ausgegeben Java Basics - Anfänger-Themen 11
J Mehrere Objekte in einem Array Java Basics - Anfänger-Themen 5
walker23m 2 objekte in das array [i] t Java Basics - Anfänger-Themen 2
L Objekte im Array speichern Java Basics - Anfänger-Themen 3
G Array Objekte Klasse Java Basics - Anfänger-Themen 9
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben