Methode aus Array abrufen

katara

Mitglied
Hallo,
Ich bin noch ein ziemlicher Anfänger was das Programmieren angeht und komme bei meiner aktuellen Hausaufgabe jetzt einfach nicht weiter.
Bisher habe ich folgenden Code geschrieben, der vier objekte (2x Kind, 2xRobbe) erstellt und diese anschließend zu einem Array zusammenfasst. Jetzt soll für alle diese Objekte die methode füttern durchgeführt werden, die im Interface Hungrig gespeichert ist, das sowohl von Kind wie auch Robbe implementiert wird. Leider habe ich absolut keine Ahnung wie ich jetzt für jedes Objekt im Array die methode aufrufen kann.
Java:
public class TagImZoo{
public 
public static void main(String[] args){
	int eiskugeln = 0;
	int fisch = 0;
	Kind Kind1 = new Kind ("Anna", 7);
	Kind Kind2 = new Kind ("Luka", 5);
	Robbe Robbe1 = new Robbe ("Kalle", 100);
	Robbe Robbe2 = new Robbe ("Mari", 97);
	Lebewesen[] tag = new Lebewesen[4];
	tag[0] = Kind1;
	tag[1] = Kind2;
	tag[2] = Robbe1;
	tag[3] = Robbe2;
	
	}
	
}
-----------------------------------------------------------
Java:
public interface Hungrig{
public void fuettern();
}
------------------------------------------------------------
Java:
public class Kind extends Lebewesen implements Hungrig{

public int alter;
public int kugeln;

public Kind (String n, int a){
	this.name = n;
	this.alter = a;
}
public void fuettern(){
	double b = alter/3;
	kugeln = (int) b; 
	System.out.println(name+" hat gerade "+kugeln+" Kugeln Eis gegessen.");
}
}
--------------------------------------------------------
Java:
public abstract class Lebewesen implements Hungrig{
public String name;
}
-----------------------------------------------------------
Java:
public class Robbe extends Lebewesen implements Hungrig{
int bauchumfangCM;
int fische;
public Robbe (String n, int b){
	this.name = n;
	this.bauchumfangCM = b;
}
public void fuettern(){
	double c = bauchumfangCM*2/15;
	fische = (int) c;
	System.out.println("Die Robbe "+name+" hat gerade "+c+" Fische gefressen.");
}
}
 

Saheeda

Top Contributor
Du musst über das Array iterieren, d.h. Element für Element durchgehen:

Java:
for(int i = 0; i< arrayname.length; i++){
arrayname[i].fuettern();
}
 

katara

Mitglied
Danke für die antwort, allerdings erhalte ich dann die Fehlermeldung non-static method cannot be referenced from a static context beim compilieren. Gibt es eine Möglichkeit das zu umgehen?
 

Network

Top Contributor
Also bei mir funktioniert der Code ohne Probleme
Code:
package de.tmscience.sciencelab.testchamber3;

public class TagImZoo {
	public static void main(String[] args) {
		int eiskugeln = 0;
		int fisch = 0;
		Kind Kind1 = new Kind("Anna", 7);
		Kind Kind2 = new Kind("Luka", 5);
		Robbe Robbe1 = new Robbe("Kalle", 100);
		Robbe Robbe2 = new Robbe("Mari", 97);
		Lebewesen[] tag = new Lebewesen[4];
		tag[0] = Kind1;
		tag[1] = Kind2;
		tag[2] = Robbe1;
		tag[3] = Robbe2;
		
		for (Lebewesen element : tag) {
			element.fuettern();
		}
	}
}
|Konsole|

Anna hat gerade 2 Kugeln Eis gegessen.
Luka hat gerade 1 Kugeln Eis gegessen.
Die Robbe Kalle hat gerade 13.0 Fische gefressen.
Die Robbe Mari hat gerade 12.0 Fische gefressen.


Was genau machst du denn, wie genau sieht dein neuer Code aus?
 
Zuletzt bearbeitet:

katara

Mitglied
Ok, ich habe einfach das hinter tag vergessen, war wohl gestern einfach schon etwas spaet fuer mich :oops:
Danke, jetzt funktionierts. Wenn ich jetzt am Ende noch ausgeben moechte, wieviele Kugeln und wieviele Fische nach durchlauf des arrays verbraucht wurden, kann ich dass dann auch direkt in die main methode schreiben?
Hatte ueberlegt einfach bei jedem durchlauf nach fuettern das hier anzuhaengen:
eiskugeln+=kugeln;
fisch+=fische;
Allerdings kennt die main methode ja die variablen kugeln und fische gar nicht:/ Falls jemand einen guten Artikel/Buchausschnitt zu objekten in arrays hat, waere ich fuer den Link auch sehr dankbar, wir hatten da kaum etwas zu und das was ich durch google gefunden habe hat mir bisher nicht geholfen.
 

Saheeda

Top Contributor
Du kannst die fuettern-Methode die Anzahl der Kugeln/Fische zurückgeben lassen.
Aber dann müsstest du in der Schleife eine instanceof Abfrage machen, ob es ein Kind oder ne Robbe ist.


Alternativ gibt es in Kind und Robe einen statischen Zähler, welcher von jedem Kind /jeder Robbe hochgezählt wird. Am Ende gibst du dann den aus mit Kind.zähler
 

Saheeda

Top Contributor
Falls jemand einen guten Artikel/Buchausschnitt zu objekten in arrays hat, waere ich fuer den Link auch sehr dankbar, wir hatten da kaum etwas zu und das was ich durch google gefunden habe hat mir bisher nicht geholfen.

Sorry, musste vorhin fix gehen.

Objekte in Arrays sind nicht viel anders, als primitive Datentypen. Ausgeschrieben sähe es so aus:

Java:
for(int i = 0; i<tag.length; i++){
Lebewesen lebewesen = tag[i];
lebewesen.fuettern();
}

Da Programmierer aber notorisch faul sind und gern Zeilen sparen, werden die beiden Zeilen zu tag.fuettern() zusammengefasst.
Ansonsten kannst du damit alles machen, was auch "normalerweise" geht: Löschen, Werte ändern, neu zuweisen, Methoden aufrufen, etc.

Das Array ist nur ein Behälter, es verhält sich immer gleich, vollkommen egal, ob du ints, bytes, booleans, Kinder, Robben oder Katzen drin speicherst.
Objekte wiederum verhalten sich ebenfalls immer gleich, egal, ob sie "blank" im Code liegen, oder in Listen, Arrays, Maps oder was auch immer gespeichert werden.

Dass du dazu nicht viel (verständliches) findest, wundert mich gar nicht: Es gibt keinen Trick/keine Magic.
Das hier ist aber ganz anschaulich: Chapter 11: Arrays of Objects
Spezielle Abschnitt 11.6
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
M Methode - Array mit Booleans füttern Java Basics - Anfänger-Themen 7
I Array einer Methode wiedergeben Java Basics - Anfänger-Themen 2
S Erklärung zur Methode und array Java Basics - Anfänger-Themen 12
L Methode Point[], Array widergeben Java Basics - Anfänger-Themen 5
N Wozu nutzt man in der Main Methode das args Array? Java Basics - Anfänger-Themen 10
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
parrot Array: Methode fügeHinzu Java Basics - Anfänger-Themen 13
J Methoden set Methode array Java Basics - Anfänger-Themen 2
B Array als Rückgabewert in der Methode Java Basics - Anfänger-Themen 1
B Ein Array an die Methode zurückgeben Java Basics - Anfänger-Themen 8
M BlueJ - Array als Paramter einer Methode eingeben Java Basics - Anfänger-Themen 12
W In Methode boolean array zurückgeben Java Basics - Anfänger-Themen 3
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1
D Compiler-Fehler Array an Methode übergeben und Wert zurückbekommen Java Basics - Anfänger-Themen 3
C In einer Methode einen Array zurückgeben Java Basics - Anfänger-Themen 2
M Methode überladen - Array List Java Basics - Anfänger-Themen 5
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
Bluebird209 Array wird nicht an Methode übergeben Java Basics - Anfänger-Themen 7
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
E Methoden 2D Array wird in der Methode nicht geändert/gespeichert Java Basics - Anfänger-Themen 5
S Array Methode Java Basics - Anfänger-Themen 8
J Array - getVorherigerMonat()-Methode Java Basics - Anfänger-Themen 31
L Methoden Set Methode mit Array befüllen Java Basics - Anfänger-Themen 4
D Erste Schritte Array Werte an Methode übergeben Java Basics - Anfänger-Themen 6
O array mit Methode variabel befüllen Java Basics - Anfänger-Themen 5
kilopack15 Methode soll int-Array zurückgeben Java Basics - Anfänger-Themen 2
A Methoden Array mit Methode nacheinander füllen Java Basics - Anfänger-Themen 3
J Array ausserhalb der Methode initialisieren Java Basics - Anfänger-Themen 4
J Methode in Array Java Basics - Anfänger-Themen 4
B Wie speicher ich die Outputs einer Methode in ein Array ein? Java Basics - Anfänger-Themen 1
Tommy Nightmare void Methode gibt Array zurück Java Basics - Anfänger-Themen 3
W Methoden Methode auf Array aufrufen, und dieses Array dabei ändern? Java Basics - Anfänger-Themen 10
W Methoden In Methode Array zurückgeben? Java Basics - Anfänger-Themen 2
K Problem mit Methode(Array,Boolean,ForSchleife) Java Basics - Anfänger-Themen 6
Silvascus Array, der mit dem Namen, der per Methode übergeben wird, erstellt wird Java Basics - Anfänger-Themen 5
V Methode erstellen für ein Boolean Array Java Basics - Anfänger-Themen 13
L Methode schreiben die den maximalen Wert im Array ermittelt Java Basics - Anfänger-Themen 27
B OOP Methode mit Array mit return verlassen Java Basics - Anfänger-Themen 8
S Array und Getter-Methode Java Basics - Anfänger-Themen 2
C Array - Methode in einer anderen Aufrufen Java Basics - Anfänger-Themen 1
J Warum wird Array durch Methode ohne Rückgabewert verändert? Java Basics - Anfänger-Themen 5
B Methoden Array Methode aufrufen Java Basics - Anfänger-Themen 4
J 2 dimensionales Array an andere Methode übergeben? Java Basics - Anfänger-Themen 1
J Array mit neuer Methode übergeben Java Basics - Anfänger-Themen 5
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
L Methoden Array an Methode übergeben Java Basics - Anfänger-Themen 1
F Teil eines Byte Array an eine Methode übergeben Java Basics - Anfänger-Themen 5
C Array aus einer Methode zurückgeben und ausgeben Java Basics - Anfänger-Themen 1
P Auf Object in Array Methode anwanden Java Basics - Anfänger-Themen 2
H Array Test Methode schreiben Java Basics - Anfänger-Themen 3
S Fehler bei Arrays.sort(array) - Methode!? Java Basics - Anfänger-Themen 3
G array return methode Java Basics - Anfänger-Themen 10
U Objekte in Array erstellen und Methode in verschiedenen klassen aufrufen Java Basics - Anfänger-Themen 5
A Methode mit Array als Param --> return Array --> Fehler Java Basics - Anfänger-Themen 3
T Methoden methode gibt array bound exeption Java Basics - Anfänger-Themen 8
D set methode bei Array Java Basics - Anfänger-Themen 11
C Array an Methode Java Basics - Anfänger-Themen 5
D Array void Methode erstellen. Java Basics - Anfänger-Themen 12
F Setter-Methode bei double-Array Java Basics - Anfänger-Themen 6
B Array in Methode erzeugen und übergeben Java Basics - Anfänger-Themen 4
F Klassen DataBuffer - Methode um Array in eine Bank zu schreiben Java Basics - Anfänger-Themen 3
N Methode die String in char-Array wandelt!! Java Basics - Anfänger-Themen 11
L Methoden Auf statische Methode einer anderen Klasse zugreifen, die Array zurückgibt Java Basics - Anfänger-Themen 3
E Generischer Methode ein Array übergeben Java Basics - Anfänger-Themen 3
B Methoden File Array an methode übergeben. Java Basics - Anfänger-Themen 2
D Array aus Methode übernehmen Java Basics - Anfänger-Themen 4
S Datentypen Array fill Methode - unterschiedliche Datentypen Java Basics - Anfänger-Themen 6
M Array in Methode erweitern und zurückgeben Java Basics - Anfänger-Themen 7
X Array von Methode in Main übergeben? Java Basics - Anfänger-Themen 11
S Methode mit zweidimensionalem Array als Parameter: '.class' expected Java Basics - Anfänger-Themen 2
C Differenz-Methode mit Array lösen Java Basics - Anfänger-Themen 14
L Array erweitern per Methode Java Basics - Anfänger-Themen 5
N Compiler findet array in gleicher methode nicht Java Basics - Anfänger-Themen 4
J double-Array mit Werten von Methode füllen und an andere Methode übergeben Java Basics - Anfänger-Themen 3
E Array mittels Methode umgekehrt ausgeben Java Basics - Anfänger-Themen 6
T Array als Rückgabewert einer Methode Java Basics - Anfänger-Themen 3
P Methode BigInteger-Array übergeben als Referenz Java Basics - Anfänger-Themen 6
B Methode aufrufen 2Dim Array Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben