Wert zuweisen bei deklaration?

Status
Nicht offen für weitere Antworten.

baer1208

Aktives Mitglied
hy @ all!

wahrscheinlich ne dumme frage...aber trotzdem

ist es sinnvoll und / oder nötig bei der deklaration von variablen diesen einen wert zuzuweisen??

z.B.
Code:
   private int Anzahl = 0;
   // oder 
   private int Anzahl;
   // wie siehts bei Strings aus??
   private String Name = "";
   //oder ist 
   private String Name = null;
   // besser?


tia

ciao baer
 

bambi

Bekanntes Mitglied
Ist auf jeden Fall sinnvoll, denk' ich.

Bin mir da jetzt absolut nicht sicher, aber war das (oder ist's nocht) in der Java Konvention?
Es ist auf jeden Fall besserer Stil und man hat weniger Probleme mit - wie war das nocht...
"might not have been initialized..." - Fehlern
 
G

Guest

Gast
Man kann ruhig darauf verzichten, wenn man weiß, was man tut. Insbesondere dann, wenn man
die Instanzvariablen sowieso in einem Konstruktor initialisiert.
z.B.
Code:
public class Person {
  private String vorname;
  private String nachname;

  public Person() {
    this(null, null);
  }

  public Person(String vorname, String nachname) {
    this.vorname = vorname;
    this.nachname = nachname;
  }
  ...
}
Manche halten es für guten Programmierstill, es gibt aber Fälle,
wo es ziemlich gefährlich sein kann, sich darauf zu verlassen.
z.B.
Code:
public class InitExample {
  public static void main(String[] args) {

    abstract class A {
      public A() {
        init();
      }
      
      protected abstract void init();
    }

    class B extends A {
      private int b = 99;
      
      public B() {
        super();
      }
      
      protected void init() {
        System.out.println(b); // Ups, irgendwas stimmt hier nicht? ;-)
      }
    }

    new B();

  }
}
 

Sky

Top Contributor
Anonymous hat gesagt.:
Code:
public class InitExample {
  public static void main(String[] args) {

    abstract class A {
      public A() {
        init();
      }
      
      protected abstract void init();
    }

    class B extends A {
      private int b = 99;
      
      public B() {
        super();
      }
      
      protected void init() {
        System.out.println(b); // Ups, irgendwas stimmt hier nicht? ;-)
      }
    }

    new B();

  }
}
Warum ist das so???
 
B

bygones

Gast
afaik geschieht der super aufruf bevor irgendetwas anderes in der Klasse geschieht (u.a. auch die initalisierung einer variable). d.h. zuerst der super aufruf was den init aufruf mit sich zieht....

du siehst es dann, wenn du nach dem super in B noch ein init reinschreibst.

Das Phänomen ist mir schon öfters begegnet wenn man in der Oberklasse methoden aufruft die man in der Unterklasse implementiert hat (und sich dann über Exceptions oder falsche werte wunder) ;)
 

Sky

Top Contributor
Ok, danke. Ich hatte bis eben gedacht, dass ein new B() dazu führt, dass zuerst die Klassen-Var-'s 'abgearbeitet' werden...
 

anfänger

Mitglied
das Problem bei der Wertzuweisung bei der Deklaration ist, dass wenn du mit der Variable später arbeitest und ihr noch nicht ihren richitgen wert zugewiesen hast, denn du beispielsweise irgendwo anders berechnest, wird der colpiler denFehler nicht bemerken und die keine fehlermeldung rausbekommst.
 

mic_checker

Top Contributor
Also besser keinen Wert zuweisen und gut is? Wenn du mit der Variablen arbeitest, dann solltest du in der Regel vorher schon den richtigen Wert zugewiesen haben, nicht erst wenn du mit allem fertig bist....davon abgesehen das der Compiler in manchen Fällen dein Prog gar nicht kompilieren wird wenn du bei der Deklaration nichts mit angibst....
 

Snape

Bekanntes Mitglied
bambi hat gesagt.:
Ist auf jeden Fall sinnvoll, denk' ich.

Bin mir da jetzt absolut nicht sicher, aber war das (oder ist's nocht) in der Java Konvention?
Es ist auf jeden Fall besserer Stil und man hat weniger Probleme mit - wie war das nocht...
"might not have been initialized..." - Fehlern

Diese Meldung erscheint bei nicht initialisierten Variablen in Methoden. Instanzvariablen werden hingegen intern initialisiert, auch wenn der Programmierer nur deklariert. Sauberer ist dennoch die explizite Initialisierung.

Aktuell haben wir z.B. in einem Fortran-Projekt genau das Problem. Bei der Umstellung auf einen neueren Fortran-Compiler und eine andere Plattform werden nämlich genau die nicht initialisierten Variablen zum Problem. Funktionierte das früher einwandfrei, ist der aktuelle Compiler strenger und initialisiert die Variablen nicht mit 0 für int usw. Stattdessen ist es mehr ein Zeiger, der auf irgendeinen Wert zeigt, was bei weiteren Berechnungen natürlich zu falschen Ergebnissen führt. Hunderte Dateien werden darauf überprüft werden müssen
 

baer1208

Aktives Mitglied
danke für die antworten! ich werds mal angehn sie zu initialisieren! (is denk ich bei meiner applikation recht sinnvoll) (im konstruktor wird bei mir nichts initialisiert)

THX!
ciao baer
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Wie kann man herausfinden, wo der Wert herkommt ? Allgemeine Java-Themen 13
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
T Verschachtelte For-Schleife gibt falschen Wert zurück, Abbruchbedingung evtl. falsch? Allgemeine Java-Themen 9
L 2 Dimensionale ListArray Abfrage nach einem Wert suchen Allgemeine Java-Themen 5
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
I Wie kann ich den Wert aus einer If abfrage ausgeben Allgemeine Java-Themen 23
S Wert zuweisung Allgemeine Java-Themen 1
Alex_99 Rechner: Wert zwischenspeichern und bei Bedarf mit Ihm weiterrechnen? Allgemeine Java-Themen 6
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
Tiago1234 CellReference cr = new CellReference("") gibt den falschen Wert zurück Allgemeine Java-Themen 49
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 2
L String zu repräsentativen Wert Allgemeine Java-Themen 0
S Drools: Zählen wie oft ein Wert vorkommt Allgemeine Java-Themen 1
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
T Wert an laufenden Java-Prozess übergeben Allgemeine Java-Themen 10
A Variablen Funktion übergibt den Wert nicht Allgemeine Java-Themen 13
P JSpinner gibt leeren Wert zurück Allgemeine Java-Themen 5
KeexZDeveoper Nächstgelegenden Wert ermitteln Allgemeine Java-Themen 5
C Variablen Variablen mit unendlichem Wert Allgemeine Java-Themen 22
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
T Array - Wert am nächsten zur vollen Sekunde Allgemeine Java-Themen 20
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
G Methoden BMI -Wert Aufgabe(Methoden) Allgemeine Java-Themen 4
F Wert ändert sich nicht Allgemeine Java-Themen 12
E JavaFX String-Wert geht "verloren" - ratlos Allgemeine Java-Themen 2
A In Excel-Datei schreiben, Formeln der Mappe anwenden, Wert lesen Allgemeine Java-Themen 3
R Int Wert im Dialogfeld ändern Allgemeine Java-Themen 4
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
O log4j, Problem bei Ausgabe null-Wert Allgemeine Java-Themen 0
H Bestimmten Wert aus String parsen Allgemeine Java-Themen 7
M HashMaps: Wert erweitern Allgemeine Java-Themen 3
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
T Datentypen ArrayUtils.indexOf( ... ) liefert -1 obwohl Wert scheinbar enthalten ist Allgemeine Java-Themen 15
H Speziellen Wert aus String filtern Allgemeine Java-Themen 4
M JExcel Wert aus Zelle übergeben/ausgeben Allgemeine Java-Themen 2
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
G Z Wert - 3 Dimensionaler Punkt Allgemeine Java-Themen 13
S JPA und Entity-Klassen: Wert ungültig Allgemeine Java-Themen 6
C .Ini-Datei Wert Änderungen werden nicht angenommen Allgemeine Java-Themen 3
J String mit "," in Double Wert konvertieren Allgemeine Java-Themen 7
A nur einen Wert aus einer .conf lesen und erneuern Allgemeine Java-Themen 3
I getResponseCode(); returnt einen falschen Wert? Allgemeine Java-Themen 7
N Applet Apache Poi Wert einer Formel ausgeben Allgemeine Java-Themen 5
G Input/Output Manuelle Änderung von Wert in Swing Komponente bemerken! Allgemeine Java-Themen 2
S Newton-Verfahren liefert nur 1 Wert Allgemeine Java-Themen 3
E Wert von enum zur Laufzeit festlegen. Allgemeine Java-Themen 5
E Wert in andere Klasse übernehmen Allgemeine Java-Themen 4
X this.val$WERT Was ist den das? Allgemeine Java-Themen 2
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
S Daten in Array als INT-Wert einlesen - jetzt als csv Datei Allgemeine Java-Themen 5
T OLE-Automation mit Excel (Wert übergabe) Allgemeine Java-Themen 1
Benji0815 Wert in GUI aktualisieren, Beobachter Allgemeine Java-Themen 9
O Hash Wert von Passwörter erstellen (SHA) Allgemeine Java-Themen 9
G Double Wert über OutputStream verschicken Allgemeine Java-Themen 2
S Methode übergibt immer den gleichen Wert Allgemeine Java-Themen 21
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
M Bit Wert umdrehen Allgemeine Java-Themen 5
J ArrayList aus Point-Objekten nach dem x-Wert ordnen Allgemeine Java-Themen 2
B Wert mit Adresse auslesen Allgemeine Java-Themen 11
S Array: Anzahl Elemente mit best. Wert zählen Allgemeine Java-Themen 4
M Ein Array-Wert soll sich verändern, aber 2 tun es? Allgemeine Java-Themen 7
S Prüfen auf Hex-Wert fester Länge! Allgemeine Java-Themen 5
G transientes Objekt mit Wert initialisieren? Allgemeine Java-Themen 7
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
reibi double-Wert auf 2 Stellen nach dem Komma abschneiden Allgemeine Java-Themen 6
S CRC wert berechnen ergibt 0 ? Allgemeine Java-Themen 9
MQue Float- Wert formatieren Allgemeine Java-Themen 8
A Private-Wert eines Objekts auslesen Allgemeine Java-Themen 9
R Wert von einer Klasse in eine andere bekommen Allgemeine Java-Themen 6
J Integer Array Wert vorhanden? Allgemeine Java-Themen 6
N Wert in ArrayList ändert sich ohne wissentliches zutun Allgemeine Java-Themen 6
O System.nanoTime() einheitlichen Wert auf mehreren Rechnern? Allgemeine Java-Themen 9
H JTable Wert verändern Allgemeine Java-Themen 3
S den zweit niedrigsten wert in einem array berechnen Allgemeine Java-Themen 2
J variablen wert ändernung mit einer art actionlistener? Allgemeine Java-Themen 4
J Vector - Wert ersetzen Allgemeine Java-Themen 14
H Zugriff auf Wert einer Umgebungsvariablen Allgemeine Java-Themen 2
H JSF - Wert an ein managed bean übergeben Allgemeine Java-Themen 2
H boolean wert ändern Allgemeine Java-Themen 2
R Wert in Hashtable ändern (Key ändern, Value bleibt) Allgemeine Java-Themen 3
G Wandeln von Char Wert in Zeichen? Allgemeine Java-Themen 2
B Java Klasse muß in Terminal einen Wert zurückgeben. Allgemeine Java-Themen 3
R ascii-wert zuweisung Allgemeine Java-Themen 4
C ImageIO die read-Methode liefert mir ein null- Wert zurück Allgemeine Java-Themen 10
A Float-Wert auf 2 Stellen nach den Komma runden ? Allgemeine Java-Themen 2
B Double-Wert aus einem HexString erstellen. Allgemeine Java-Themen 11
B Wie bekomme ich den Wert aus der For-Schleife? Allgemeine Java-Themen 5
Drachenbauer Wie kann ich einer existierenden Enum von außerhalb veränderte Werte zuweisen? Allgemeine Java-Themen 5
I Text aus Input-Box entnehmen und zuweisen Allgemeine Java-Themen 1
L Variablen Eigenes Objekt wie z.B. einen Integer zuweisen Allgemeine Java-Themen 3
4 Variablen Int-Array Int Zuweisen Allgemeine Java-Themen 7
C JFormattedTextField Inhalt einer Variable zuweisen Allgemeine Java-Themen 11
L Methoden Spieler zufällig einem Team zuweisen Allgemeine Java-Themen 6
C ActionListener zwei Buttons zuweisen Allgemeine Java-Themen 11
D Speicher beim Start zuweisen Allgemeine Java-Themen 10
M Eigenem Dateiformat Icon zuweisen Allgemeine Java-Themen 6
Y Auszuführendem Projekt mehr Speicherplatz zuweisen Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben