PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variablenwertübernahme in eine andere Klasse



pry0
26.09.2010, 12:15
Hey,

wollte euch fragen, wie es möglich ist, aus einer Klasse eine Variable in der anderen anzeigen zu lassen.

z. B. ich habe zwei Klassen, die eine heißt Kunde und besitzt die Variable int kundennr = 99, diese kundennr möchte ich mir in meiner zweiten Klasse Bestellung anzeigen lassen.

Wie ist diese Variablenwertübernahme möglich?

MfG

100
26.09.2010, 13:47
Entweder, indem eine der Klassen eine Funktion hat, die eine globale Variable setzt, oder indem du direkt beim Erzeugen der Klasse (falls die andere Klasse das übernimmt) die Variablen als Parameter übergibst.

Klasse 1
Konstruktor:
int a = 0;
public void setA(int a) {
this.a = a
}

Klasse 2
<Instanz der Klasse 1>.setA(5);

o_O
26.09.2010, 13:50
Hierfür verwendet man meist get und set Funktionen.

Bsp

int get kundennummer()
{
return kundennummer;
}

haggys22
26.09.2010, 14:22
wenn dann
public int getKundennummer(){
return kundennummer;
}


wenn du mit Eclipse arbeitest, dann bietet es dir auch eine Funktion an, die "get" und "set" Methoden automatisch zu erstellen ;)

pry0
26.09.2010, 17:55
Entweder, indem eine der Klassen eine Funktion hat, die eine globale Variable setzt, oder indem du direkt beim Erzeugen der Klasse (falls die andere Klasse das übernimmt) die Variablen als Parameter übergibst.

Klasse 1
Konstruktor:
int a = 0;
public void setA(int a) {
this.a = a
}

Klasse 2
<Instanz der Klasse 1>.setA(5);

Hab das jetzt mal probiert in dem ich das so umgesetzt habe:

Klasse1:



public class variable
{
int a;

public variable()
{
int a = 5;
}

public void setA(int a)
{
this.a = a;
}


}

Klasse2:

public class variablenanzeige
{

variablenanzeige.setA(5);

public int getA()
{
return variablenanzeige.setA(5);
}

}

BlueJ, den Editor, welchen ich am Anfang verwende, zeigt mir bei der Zeile "variablenanzeige.setA(5);" einen Fehler an..

Wieso?

o_O
26.09.2010, 18:08
Du hast absolut objektorientiert nicht verstanden.
Die set und get Funktion muss natürlich beides in der gleichen Klasse (variable) sein
Weiterhin, wo erzeugst du dein Objekt variable in variablenanzeige ?


Richtig wäre es so:


public class variable
{
int a;

public variable()
{
}

public void setA(int x)
{
a = x;
}

public int getA()
{
return a;
}

}



public class variablenanzeige
{

public static void main(String args[])
{
variable foo = new variable();
foo.setA(4);
}


}

100
26.09.2010, 18:10
// Klasse 1 hat die Variable 1
public class Klasse1 {
int a;


// Zum setzen von a
public void setA(int a) {
this.a = a;
}

}


// Klasse 2 will die Variable von Klasse 1 setzen
public class Klasse2 {
Klasse1 klasse1;


// Halt in irgendeiner Methode
public Klasse2() {
klasse1.setA(10);
}

}


// ### Umgekehrt ###

// Klasse 1 gibt den besagten Wert beim Funktionsaufruf zurück

public class Klasse1 {
int a = 5;

public int gibA() {
return a;
}

}

public class Klasse2 {
Klasse1 klasse1;
int a;

public Klasse2 () {
a=klasse1.getA();
}
}

Hoffe da sind spontan keine Fehler drin. Das sind allerdings die Basics.. je nach Problem, macht es mehr Sinn, die ein oder andere Variante zu verwenden. Wenn du also nicht selbst darauf kommst, dann beschreib einmal genau dein Vorhaben.