Variablen-Deklaration

  • Themenstarter Themenstarter Leeprasteen
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
L

Leeprasteen

Gast
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?
 
vielleicht meinst du das hier:


Code:
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 ?

[/code]
 
sehr gut erklärt 😉

nur schrieb private zu F sonst, würdest die Funktionen auch net brauchen 😉

alles was keiner außerhalb braucht, private, obwohl wenn nix ist sowas artiges wie private, zu lesen in den FAQ
 
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
  ...
  }
}
welches beipspiel ist besser?
 
ein edit:

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.
  }
}
 
zu bsp 2 :

wenn du in einer methode eine variable deklarierst existiert die nicht ausserhalb dieser ( glaub ich wenigstens ).

du kannst dann nicht z.b auf test.i zugreiffen , dass i gibts nähmlich gar nicht.

ausser du nimsmt bsp 2


is doch korrekt oder net ?
 
Anonymous hat gesagt.:
wenn du in einer methode eine variable deklarierst existiert die nicht ausserhalb dieser ( glaub ich wenigstens ).
Richtig - eine Variable ist nur im definierten Block gültig !
 
thx - das wollt ich eigentlich nur wissen - benötige die variable nur in den methoden.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben