wenn ich in einer Klasse in mehreren Funktionen die gleiche Variable benötige, die Werte der Variablen aber nur innerhalb der einzelnen Funktionen benötigt werden, sollte man die Variable dann in jeder Funktion seperat deklarieren oder kann man sich den Aufwand sparen und es reicht sie einmal als Member-Variable der Klasse zu deklarieren?
class Flag
{
boolean F; // Variable fuer die Eigenschaft
void set () // Methode Setzen
{ F=true;
}
void clear () // Methode Loeschen
{ F=false;
}
boolean isSet () // Abfrage des Status
{ return F;
}
}
wenn du nun ein objekt erzeugst hat dieses objekt die variable F und die 3 methoden oder funktionen.
F ist dann eine Objektvariable jedes weiter objekt hat auch eine Variable F die aber nix mit der anderer Objekte zu tun hat. Ausser du deklarierst sie als static dann ist es eine Klassenvariable die nur einmal existiert egal wieviel objekte du erzeugst. die einzelnen objekte können den wert von F sagen wir mal es wäre ein int ändern, sie ändern dann immer dieselbe variable weils static ist. wärs nciht static so wie oben, dann ändern die objekte jeweils ihr eigenen Variablen, es gibt dann also mehrere F´s. Verstanden ?
ich habe es eigentlich noch einfacher gemeint - der zugriff sollte ja nicht aus anderen klassen auf die variable erfolgen. wahrscheinlich ist die frage zu einfach.
ich mach einmal mal zwei beispiele:
bsp1:
Code:
class test {
int testvariable = 0;
public test() {
...
}
void erstefunktion() {
testvariable = 1;
...
//hier wird testvariable irgendwo verwendet
...
}
void zweitefunktion() {
testvariable = 2;
...
//hier wird testvariable irgendwo verwendet
...
}
}
bsp2:
Code:
class test {
public test() {
...
}
void erstefunktion() {
int testvariable = 1;
...
//hier wird testvariable irgendwo verwendet
...
}
void zweitefunktion() {
int testvariable = 2;
...
//hier wird testvariable irgendwo verwendet
...
}
}
die einzelnen objekte können den wert von F sagen wir mal es wäre ein int ändern, sie ändern dann immer dieselbe variable weils static ist. wärs nciht static so wie oben, dann ändern die objekte jeweils ihr eigenen Variablen, es gibt dann also mehrere F´s. Verstanden ?
ändern in
die einzelnen methoden der objekte können den wert von F sagen wir mal es wäre ein int ändern, sie ändern dann immer dieselbe variable weils static ist. wärs nicht static so wie oben, dann ändern die methoden der objekte jeweils nur die Variablen der objekte , es gibt dann also mehrere F´s. Verstanden ?
is doch präziser oda ???:L :applaus: :applaus: :applaus: :lol:
das kann man so nicht sagen... ist testvariable eine Instanz bzw. Klassenvariable - soll heißen ist eine Methode abhängig von dem Wert den einen andere Methode z.b. setzt (siehe flag bsp.) - oder ist die Variable einfach eine lokale Variable die nur in der methode verwendet wird ?
wenn die variable für alle methoden benötigt wird (die variable an sich, nicht ihr name), dann muss sie eine instanz / klassenvariable sein. Sind die Variablen aber völlig unabhängig voneinander dann sollten sie lokal definiert sein
Falls die "testvariable" keine Informationen weitergibt, definierst du sie besser direkt in der Methode.
also falls du nichts derartiges hast:
Code:
public void erstefunktion(){
if( testvariable == 1 ){ // der Wert der testvariable ist schon wichtig, bevor die Methode damit irgendetwas gemacht hat.
}
}