Von einer Methode auf eine lokale Variable in der Main zugreifen?

Hallo,

habe mal wieder Schwierigkeiten und komme einfach nicht weiter.;(

Habe hier eine Aufgabenstellung aus einer alten Klausur die wie folgt heißt:
Ergänzen Sie die Klasse „FussballStat“ um eine Methode mit dem folgenden Methodenkopf:
Java:
Spieler[ ] getSpielerMitNToren (int n)
Diese Methode liefert ein Array mit allen Spielern aus „mannschaften“, die n Tore geschossen
haben.

Die vorgegebene Klasse „FussballStat“ sieht so aus:
Java:
public class FussballStat {

	public static void main(String[] arg) {
		
		private List<Mannschaften> mannschaften = new LinkedList<Mannschaften>();
		Spieler[] spieler1 = {new Spieler("Podolski"), new Spieler("Schweinsteiger")};
		
		LinkedList<Spieler> spieler2 = new LinkedList<Spieler>();
		spieler2.add(new Spieler("Lucio"));
		ArrayList<Spieler> spieler3 = new ArrayList<Spieler>();
		spieler3.add(new Spieler("Robben"));
		Spieler[] spieler4;
		
		mannschaften.add(new Mannschaften(spieler1));
		mannschaften.add(new Mannschaften(spieler2));
		mannschaften.add(new Mannschaften(spieler3));
		spieler4 = mannschaften.get(0).getSpieler1();
		
		}
// weitere methoden...
	// mein bescheidener Versuch die Methode zu implementieren
	/*
	 	 Spieler[] getSpielerMitNToren(int n){
			for(Mannschaften mn: mannschaften)
			return null;
			
		}
		*/	 
}

Neben der Klasse FussballStat ist noch die Klasse Spieler vorgegeben:
Java:
public class Spieler {

	private String name;
	private int tore = 0;
	
	Spieler(String name){
		this.setName(name);
	}
	public void addTor(){
		tore++;
		
	}
	public int getTore(){
		return tore;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public String toString(){
		return name;
	}
}
1. Wie schaffe ich es auf die Variable "mannschaften" von der Methode getSpielerMitNToren() zu zugreifen?
2. Die Variable "mannschaften" in Zeile 5 ist mit private versehen Eclipse meldet mit hier einen Fehler und will es weg haben, wo liegt hier der Problem?

Ich will jetzt keine Komplettlösung für die Methode nur einen Tip wie ich die Variable auslesen kann.

Danke schon einmal im Voraus.
LG
 

tfa

Top Contributor
Auf eine lokale Variable kann man nur innerhalb der Methode, in der sie definiert ist, zugreifen. Nicht von anderen Methoden aus. Eine lokale Variable als private zu deklarieren geht auch nicht.
Du musst das anders lösen, etwa durch eine Member-Variable. Definiere die mannschaften-Variable außerhalb von main(). Dann musst du dort noch ein FussballStat-Objekt anlegen und kannst dann von sämtlichen (nicht-statischen) Methoden auf deine mannschaften zugreifen.
 
Hallo,

und Danke dir für die Antwort.

Diese Möglichkeit ist mir auch bekannt gewesen aber ich bin mir nicht sicher ob es der Aufgabenstellung, mit der vorgegebenen Classe "FussballStat", entsprechen würde.

Und du bist dir sicher das es keinen weg gibt auf die Variable zuzugreifen?


LG
 
@ Murray.
Ja, steht so in der Aufgabenbeschreibung drin.

@ nrg:
der Methode wird nur ein int wert übergegeben.
Java:
Spieler[ ] getSpielerMitNToren (int n)

LG
 

Murray

Top Contributor
@ Murray.
Ja, steht so in der Aufgabenbeschreibung drin.
Das ist Quatsch - und syntaktisch falsch, daher nicht übersetzbar.

Die Aufgabe ist so also nicht lösbar. Entweder änderst du die Deklaration der lokalen Variablen (private müsste einfach weggelassen werden) und änderst ebenfalls die vorgebenen Signatur der zu schreibenden Methode, indem du dort mannschaften als Parameter übergibst, oder du machst mannschaften zu einer Member-Variablen der Klasse.
 

gafktor

Mitglied
Das ganze scheint mir so etwas sinnfrei zu sein.
Allerdings gib es noch einige Variablen an Listen, die nachher nicht mehr auftauchen(Spieler als Array, LinkedList, ArrayList) und // Weitere Methoden ... die evtl. einen indirekten Zugriff ermöglichen. Nur mal so als Anmerkung

mfg
gafktor
 
Hallo,

hab hier mal die komplette Aufgabenstellung beigefügt
vielleicht übersehe ich ja einiges.

wie würde den so eine Methode ausschauen die einen indirekten Zugriff erlauben würde?

LG
 

Anhänge

  • Aufgabe4_2010.pdf
    72,9 KB · Aufrufe: 32
M

Marcinek

Gast
Das ist ein Tippfehler in der Aufgabenstellung.

Du müsstest sonst sowas machen

Code:
getNTore (int tore, List<Mannschaften> mannschaften) {}
 
Hallo,

Danke erstmal für die Antworten.

@Marcinek:
das mit dem Tippfehler kann gut möglich sein, aber ich weiss es nicht.

@gafktor:
Die Aufgabe a) habe ich eigentlich gemacht. Ist wahrscheinlich keine ideale Lösung, aber Eclipse meckert nicht bei der Initialisierung in der Klasse FussballStat :) und wenn die Methode getSpielerMitNToren() implementiert ist, kann ich dann auch sehen ob die Aufgabe 4a) korrekt ausgeführt wird ;).

LG
 
Zuletzt bearbeitet:

gafktor

Mitglied
Hallo

wenn ich deine Aufgabe richtig verstehe brauchst du für Aufgabe b) einen Zugriff auf alle Spieler die in der Liste mannschaften enthalten sind und sollst in Aufgabe a) die Klasse Mannschaft so implementieren das die Klasse Fussballstat lauffähig ist. Was hindert dich also in der Klasse Mannschaft eine (statische) List oder was auch immer zu implementieren und wenn der Konstruktor aufgerufen wird diese entsprechend fort zuschreiben. Dann kannst du in der zu erstellenden Funktion direkt auf die Spielerliste zugreifen und wie auch gewünscht auswerten.

mfg
gafktor
 
Hallo
@gafktor:

was mich daran hindert? - eigentlich garnichts, ausser mein falsches Verständnis für die Aufgabe ;).
Das mit der statischen Variable ist auch eine Möglichkeit aber würde sie dann nicht zusätzlich zu der anderen Variable "mannschaften" Platz im Speicher verbrauchen?

LG
 

gafktor

Mitglied
Naja,

wenn die Variable static ist gilt sie für die Klasse mannschaft einmalig, wird also nicht für jede Mannschaft angelegt. Will heissen, du hast genau eine List mit allen Spielern egal, wiewiel mannschaften existieren. Davon abgesehen hält die List ja nicht das Object Spieler sondern eine Referenz auf den Speicherplatz wo der Spieler gerade rumlungert. Du solltest vieleicht darauf achten, diese List nicht bei jedem Konstruktoraufruf auf einen neuen Wert zu setzen. Ich würd mir dazu evtl. eine eigene Funktion basteln -> addSpielerList(Spieler spieler) die ich im Konstruktor ziehen würde.

mfg
gafktor
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
scratchy1 Kann man in einer Methode eine andere aufrufen? Java Basics - Anfänger-Themen 2
S Wie erstelle ich eine Vorbedingung für eine Variable einer Methode ? Java Basics - Anfänger-Themen 5
B Wie kann ich eine Methode einer selbst erstellten Klasse statisch importieren? Java Basics - Anfänger-Themen 5
M Methoden Int einer Methode an eine andere Methode übergeben Java Basics - Anfänger-Themen 4
H Innerhalb einer Methode eine Variable der aufrufenden Methode ändern? Java Basics - Anfänger-Themen 2
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 13
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 1
F Problem bei eshop -> Ausführen einer Methode über eine Shopverwaltung Java Basics - Anfänger-Themen 6
S Methoden Rückgabewert einer Methode als Parameter an eine andere Methode übergeben, geht das? Java Basics - Anfänger-Themen 5
L Methoden Eine Methode aus einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 4
E Variable aus einer Methode heraus in eine andere Klasse übergeben Java Basics - Anfänger-Themen 13
M Zwei Threads greifen auf eine Methode einer Klasse zu. Komplikationen? Java Basics - Anfänger-Themen 18
A Einer Methode eine andere Methode übergeben Java Basics - Anfänger-Themen 6
L Aus einer Methode eine eigene Klasse machen - modular coden Java Basics - Anfänger-Themen 14
G Was passiert mit eine Methode bei einer Instanz Java Basics - Anfänger-Themen 13
M Wert von einer Methode in eine Andere übergeben Java Basics - Anfänger-Themen 6
M Methode einer Klasse in eine andere Übergeben Java Basics - Anfänger-Themen 4
A Wert einer Variable an eine Methode in einer anderen Klasse. Java Basics - Anfänger-Themen 4
B in einer Methode eine andere Methode aufrufen Java Basics - Anfänger-Themen 1
J Von einer Klasse auf eine Methode einer anderen Klasse zugre Java Basics - Anfänger-Themen 6
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6
A Ergebnis einer Methode bei einer anderen verwenden Java Basics - Anfänger-Themen 13
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
D mehrere Berechnungen in einer Methode Java Basics - Anfänger-Themen 9
I Array einer Methode wiedergeben Java Basics - Anfänger-Themen 2
I Argumente einer Java Methode Java Basics - Anfänger-Themen 14
D Methoden Plathhalter für Integer in einer Methode Java Basics - Anfänger-Themen 19
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
C Auf die Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 1
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
T getAttribut in einer Methode aufrufen Java Basics - Anfänger-Themen 8
BorussiaMG1900 Implementation einer Methode Java Basics - Anfänger-Themen 1
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
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
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
M this.object in einer parameterlosen Methode verwenden Java Basics - Anfänger-Themen 3
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
O BiPredicate in einer forEach Methode Java Basics - Anfänger-Themen 10
L Wie greife ich in der Subklasse auf die Parameter einer Methode der Superklasse zu ? Java Basics - Anfänger-Themen 15
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
L Variable von einer Methode zu einer anderen Methode inkl. einer "Zwischenmethode" Java Basics - Anfänger-Themen 1
B Hilfe bei einer rekursiven Methode Java Basics - Anfänger-Themen 3
S Auf Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 3
M Implementierung einer getNextId Methode Java Basics - Anfänger-Themen 5
R Signatur einer Methode in JAVA Java Basics - Anfänger-Themen 4
N Methode mit einer Arraylist Java Basics - Anfänger-Themen 106
I ArrayList - Methode zum Speichern eines Eintrags in einer Datei Java Basics - Anfänger-Themen 17
H Arraydaten aus einer anderen Methode ausgeben Java Basics - Anfänger-Themen 4
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
T Return einer anderen Methode herausfinden Java Basics - Anfänger-Themen 9
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
M kann man return in nur einer Methode einsetzen? Java Basics - Anfänger-Themen 7
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 2
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 3
G Die richtige Methode aus einer DTO auszurufen Java Basics - Anfänger-Themen 27
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
M BlueJ - Array als Paramter einer Methode eingeben Java Basics - Anfänger-Themen 12
O Arrays sortieren in einer Methode Java Basics - Anfänger-Themen 2
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
D Compiler-Fehler Aufrufen einer Methode von Main Java Basics - Anfänger-Themen 4
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
E Threads Methode einer Wartenden Klasse aufrufen Java Basics - Anfänger-Themen 3
P Methode soll Variable einer anderen Klasse ändern. Wie? Java Basics - Anfänger-Themen 1
J Rekursive Methode - Ziffern einer Zahl ausgeben Java Basics - Anfänger-Themen 2
D Methoden JButton und JLabel in einer Methode erstellen Java Basics - Anfänger-Themen 5
C In einer Methode einen Array zurückgeben Java Basics - Anfänger-Themen 2
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
J String splitten und weiter einarbeiten in einer Methode? Java Basics - Anfänger-Themen 11
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
D Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 39
S BufferedWriter innerhalb einer Methode Java Basics - Anfänger-Themen 2
V Methode eines Objekts einer ArrayList ausführen Java Basics - Anfänger-Themen 3
V for-Schleife in einer void Methode Java Basics - Anfänger-Themen 3
P Instanz mit .add Methode von einer Klasse zur anderen? Java Basics - Anfänger-Themen 6
C Bestimmtes Objekt einer ArrayList in einer Methode selektieren Java Basics - Anfänger-Themen 8
BobbGott Klassen 2 "Objekte" in einer Methode - wie? Java Basics - Anfänger-Themen 7
B Wie speicher ich die Outputs einer Methode in ein Array ein? Java Basics - Anfänger-Themen 1
N Objekt in Methode einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben