Java Variablen an eine Methode übergeben

tnoay

Banned
Registriert
Nov. 2013
Beiträge
1.901
Hi, ich habe ein Problem mit Java, anbei etwas beispielcode.

OK, dort habe ich drei Methoden (A, B, C) mit verschiedenen variablen (int, long, String), wie bekomme ich die drei in meine neue methode "Sammlung"?

Geht das rein über den Konstruktor? Muss ich dann für x verschiedene varianten x Konstruktoren erstellen?

Zu dem Problem bin ich gekommen, da ich eine GUI schreiben will, die Checkboxen für Optionen hat. Wird nun eine Option aktiviert, würde ich praktisch schreiben "Wenn Chekcbox aktiviert, gib variable x, y, z an methode a weiter" oder "Zeige nun Button1...", "Button1 gibt nun Variablen x,y,z weiter"

Code:
public void A (){
.........
int a = 5;
String = "Hallo";
}

public void B (){
.........
int b = 5;
Long l = 5.555;
}

public void C (){
.........
int c = 5;
}


public void Sammlung () {
..........
}
 
Ich verstehe dein Problem nicht ganz, soll die Methode Sammlung auf diese Variablen zugreifen können oder wie meinst du das?
Vielleicht als Klassenvariable definieren?
 
Hey,

mach das doch mit privaten Variablen, indem du die String, int und long Variable außerhalb der Funktionen deklarierst. Das geht mit:

"private int c;"
"private String variable;"

Dann kannst du auch in mehreren Funktionen drauf zugreifen.
Oder du beschreibst die Funktion Sammlung wie folgt:

public void Sammlung(int x, long y, String variable){
}

Dann müssen aber alle drei Parameter an die Funktion übergeben werden.
 
Grundsätzlich Vorschlag:
Lies die Konzepte für Objekte bzw. Objektorientierte Programmierung durch

Methoden gehören ja schon zu einer Klasse. D.h. du brauchst nur Objekt variablen definieren, die sind dann in allen Membermethoden erreichbar.
 
public String A() {return "Hallo";}
public Long B() {return 5.555;}
public int C() {return 5;}

public void Sammlung (String a,long b,int c)

Sammlung(A,B,C)
 
Wenn die Methoden alle in der selben Klasse sind, kannst du in der Methode

public void Sammlung () {
..........
}

die anderen Methoden z.B. mit "this" aufrufen.

Am Beispiel:

public void Sammlung () {
this.A();
this.B();
.....
}

mit Parametern geht das natürlich auch analog. Der "this." Operator ist eine Referenz auf deine aktuelle Klasse in der du dich befindest, es geht auch ohne "this.", aber mit ist es Übersichtlicher.
 
Alter. Solche Frage nun echt Bitte nicht stellen. Die Antworten stehen ja sogar im Wikipedia Artikel.

Führe Dir bitte das Buch (auch online) Java ist auch eine Insel zu gemüte. Das ist auch Anfänger tauglich.
 
@AnonStar

Naja, wenn er schon GUIs macht sollte man meinen er könne das alles schon ;)
 
okay, danke leute
amokkx schrieb:
public String A() {return "Hallo";}
public Long B() {return 5.555;}
public int C() {return 5;}

public void Sammlung (String a,long b,int c)

Sammlung(A,B,C)
braucht der konstruktor dann nicht exakt eine methode die die 3 variablen übergibt?
 
Du kannst in Java keine Methoden als Parameter übergeben. Mizukag hat dir schon die richtige Lösung gesagt. Das this ist jedoch unnötig.
 
@tnoay: Ich meinte das wirklich ernst, mit dem einlesen. Das war echt kein Spaß! Es gibt auch solche Sehbücher (http://de.webfail.com/bfe804a2538) über Java. Damit kann man auch was lernen.

Zur Frage: amokkx macht das schon richtig. Mit dem Aufruf
Code:
Sammlung(A(),B(),C());
wird die Methode Sammlung aufgerufen und es werden die jeweiligen Rückgabewerte von den Methoden A,B & C übergeben. Nur die Klammern hat er vergessen.

Natürlich kannst Du da auch den Aufruf in den Konstruktor schmettern, wenn es sinnvoll ist.
Mit Klassenvariablen würde ich hingegen - insbesondere bei GUIs - sehr sparsam umgehen.

Mit welchem Framework arbeitest Du denn überhaupt?
AWT? Swing?...?

MfG,

der von der Lesekompetenz desillusionierte AnonStar
 
Zurück
Oben