kleine Verständnisfrage lokale + Member Variable

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Hey,

sagt mal kann es sein, dass lokale Variablen niemals initialisiert werden?
zB kann ich eine nicht initialisierte int-Member Variable nutzen (Wert halt 0), aber
eine nicht intialisierte lokale Variable nicht.

Was ist der Grund dafür, dass lokale Variablen nicht mit einem Standard-wert definiert sind?
 
S

SlaterB

Gast
ich vermute, dass man bei lokalen Variablen viel eher den Ablauf bestimmen kann,

bei einem Attribut weiß niemand, in welcher Methode das nun gesetzt werden soll und wo darauf zugegriffen wird,
auch die Regel 'nach dem Konstruktor muss es gesetzt sein' hilft nicht unbedingt,
denn der vorher dran kommende super-Konstruktor könnte schon eine vererbte Methode aufrufen, die auf die Variable zugreift
 

hdi

Top Contributor
Ok das macht Sinn. Über Attribute kann man halt nicht sagen, wann sie konkret genutzt werden,
allerdings innerhalb einer Methode ist es klar: Das ganze wird sequentiell durchgearbeitet, und wenn
man dort eine Variable erst definiert, dann kann man ganz genau wissen was damit passiert.

Okö, danke :)
 

0x7F800000

Top Contributor
evtl werden die automatisch erstellten default-konstruktoren so beschaffen sein, dass sie alle primitive member-vars auf 0 und alle Object-membervars auf "null" setzen, deswegen ist alles von anfang auf 0, und der compiler hat nichts zu meckern?
 
S

SlaterB

Gast
die Frage ist ja vor allem das 'Warum?',
warum wird man bei lokalen Variablen dagegen so gestänkert, die zu initialisieren,

wäre doch sicher technisch möglich, die auch mit 0/ null zu initialisieren,
ohne dabei Geschütze wie Default-Konstruktoren aufzufahren,
oder doch: 'automatisch eingefügte x=null;-Zeile' ;)
 

hdi

Top Contributor
@Andrey: Ne glaub ich nicht ?!

Code:
class Some{

   int x;

   // @ Default Konstruktor Override ???
   public Some(){
        System.out.println(x); // <- "0"
   }
}
 

0x7F800000

Top Contributor
<edit>
@hdi: okay, dann verwerfe ich meine hypothese
@Slater: wegen dem "Warum?":
</edit>

kA. Ich finde es so wesentlich praktischer. Z.B. muss man sich keine Sorgen machen, wenn man irgendwo eine verzweigte konstruktion hat:
Code:
int method(x,y,z){
int result;
if{
   if{
      result=1;
   }else{
      if{
         result=2;
      }else{
         result=3;
      }
   }
}else{
   if{
      result=4;
   }else{
      result=5;
   }
}

if(result irgendwas){
  //result zu guter letzt aufpolieren
}

return result;
Und nicht sicher weiß, ob man jetzt wirklich in jedem Leaf der Verzweigung die lokale result-variable auf irgendwas sinnvolles gesetzt hat. So ist es doch unheimlich praktisch, wenn man da angemeckert wird, dass man es irgendwo vergessen hat zu initialisieren.

Ansonsten müsste man sich evtl 500 Zeilen später wundern, woher in der Rechnung plötzlich eine 0 auftaucht, obwohl das rein vom verfahren her nicht sein kann. Und alles nur deswegen, weil der Kompiler eigenmächtig "=0" eingefügt hat, und verschwiegen hat, dass man irgendwas nicht initialisiertes verwendet. Wär doch blöd oder? :roll:
 

hdi

Top Contributor
Stimmt schon... Irgendwas haben die sich bei Sun halt immer gedacht, davon kann man ausgehen.
Die Frage ist nur, ob sie zu dem Zeitpunkt nüchtern waren oder nicht ;)

Also ich finde es auch gut so, wie es ist. Das ist mir halt nur bis jetzt gar nicht so bewusst gewesen
(wie so vieles, das man tagtäglich akzeptiert ohne es zu hinterfragen)

PS: Sagt mal kommt es nur mir so vor oder wird der Arsch in meiner Signatur immer fetter? Ich glaub
ich muss mich bald trennen :noe:
 
S

SlaterB

Gast
edit: ach, nichts sinnvolles

edit: die Signatur ist ausgesprochen störend, stimmt
 

The_S

Top Contributor
Die CodeConventions sagen ja aus, dass alle Variablen zu Beginn eines Blocks deklariert werden sollen, auch wenn sie noch nicht am Anfang benötigt werden. Gleichzeitig sollten sie bei der Deklarierung Initialisiert werden, es sei denn, es ist nicht möglich sie bereits zu initialisieren (weil z. B. noch etwas vorher berechnet wird).

Imho ist das wohl ein kleines Gimmick, das verhindert, dass man vergisst sowas zu berechnen und dem Programmierer eher einen kleinen Schubser in Richtung CodeConventions gibt, seine Variable doch gleich bei der Deklarierung zu Initialisieren ;) .

@Arsch:

Ich bin hin und hergerissen. Auf der einen Seite lenkt er von der Arbeit ab, auf der Anderen werde ich gerne abgelenkt :autsch:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
M Welches Framework für kleine WebApp nutzen? Java Basics - Anfänger-Themen 6
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
CptK Interface Kleine Kreise in großem Kreis anordnen Java Basics - Anfänger-Themen 3
CT9288 Kleine Simulation programmieren, denkanstöße erbeten Java Basics - Anfänger-Themen 19
S Kleine Frage zu Threads Java Basics - Anfänger-Themen 3
T Klassen Kleine Übung zum Thema Klassen Java Basics - Anfänger-Themen 3
O Kleine Frage zu Iterator und Iterable Java Basics - Anfänger-Themen 6
O Kleine Frage zu cast Java Basics - Anfänger-Themen 3
U DOM Parser, kleine Frage Java Basics - Anfänger-Themen 29
N BierSpiel von "Kopf bis Fuss" eigener Code...kleine Problemstellung. Java Basics - Anfänger-Themen 11
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
TheSorm Kleine Speicher Klasse Java Basics - Anfänger-Themen 24
F Speicherlast mehrere GB durch kleine png files? Java Basics - Anfänger-Themen 1
T Kleine Anfängerfrage :) Java Basics - Anfänger-Themen 4
T Kleine Klausurfragen Java Basics - Anfänger-Themen 17
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
Q Vererbung Kleine Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 5
DStrohma Best Practice Hibernate für kleine Anwendung nutzen? Java Basics - Anfänger-Themen 4
O Konsole - Kleine Frage Java Basics - Anfänger-Themen 22
N kleine get-Methode anhand einer Aufgabenstellung Java Basics - Anfänger-Themen 13
D Kleine Rechenregel... ++a Java Basics - Anfänger-Themen 4
ScottGambler Kleine Frage Java Basics - Anfänger-Themen 13
M Erste Schritte 2 Kleine Programme Java Basics - Anfänger-Themen 27
T Kleine Frage Java Basics - Anfänger-Themen 2
B Kleine Erklärung zu einer Codezeile benötigt Java Basics - Anfänger-Themen 5
A Java Flächeninhaltsberechnung kleine Frage Java Basics - Anfänger-Themen 8
H Datei in kleine Stücke teilen und wieder erkennen Java Basics - Anfänger-Themen 10
P eigene kleine Datenverwaltung Java Basics - Anfänger-Themen 5
S Erste Schritte Zwei kleine Fragen zu [], int und Konstruktor Java Basics - Anfänger-Themen 3
S Erste Schritte Kleine Problem mit Ausgabe in eine Datei Java Basics - Anfänger-Themen 11
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
R Sehr kleine doubles nicht in Exponentialdarstellung ausgeben Java Basics - Anfänger-Themen 3
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
O kleine SwingFrame Java Basics - Anfänger-Themen 3
T Kleine Frage zu Collections Java Basics - Anfänger-Themen 3
J BlueJ! 2 kleine Fragen zum Spiel. Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
H Warum funktioniert diese kleine Methode nicht? Java Basics - Anfänger-Themen 8
E Kleine Hilfe für einen Einsteiger Java Basics - Anfänger-Themen 18
Luk10 Dateipfad beim Laden einer Datei + Neue kleine Frage! Java Basics - Anfänger-Themen 11
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
M kleine Verständisfrage zur Klassenhierarchie, speziel JMenuItem Java Basics - Anfänger-Themen 8
J Kleine Frage zu Methoden & OOP Java Basics - Anfänger-Themen 4
B Paar kleine Grundsatzfragen zu Java Java Basics - Anfänger-Themen 5
S 2 kleine Methoden negieren und print Java Basics - Anfänger-Themen 8
J if und kleine double Werte Java Basics - Anfänger-Themen 7
H kleine zwischenfrage string Java Basics - Anfänger-Themen 3
ModellbahnerTT Kleine Frage zu doppelten Arrays Java Basics - Anfänger-Themen 3
M Kleine Konsole mit Threads + KeyAdapter Java Basics - Anfänger-Themen 6
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
R Kleine Frage zu Array Java Basics - Anfänger-Themen 2
B kleine Probleme beim auslesen einer m3u Datei Java Basics - Anfänger-Themen 3
G eine kleine verwaltung Java Basics - Anfänger-Themen 2
M Eine kleine Frage bzw kleine Theorie frage String[arg] Java Basics - Anfänger-Themen 6
Povlsen84 Initlialisierung, Vector, serialVersionUID . kleine Fragen Java Basics - Anfänger-Themen 4
M Kleine Anfängerfrage Java Basics - Anfänger-Themen 10
D kleine Passwortabfrage erstellen incl. Method zum verändern Java Basics - Anfänger-Themen 7
G jFTP - kleine Fragen Java Basics - Anfänger-Themen 2
P Eine kleine Frage. Java Basics - Anfänger-Themen 4
M kleine sql abfrage Frage Java Basics - Anfänger-Themen 5
K Kleine Fragen über Arrays Java Basics - Anfänger-Themen 8
Z kleine frage zu: Runtime.getRuntime().exec("cmd /c) Java Basics - Anfänger-Themen 3
M Zufallszahl - kleine Frage Java Basics - Anfänger-Themen 4
K Hallo, Ich suche kleine Java Program-Aufgaben zum üben ? Java Basics - Anfänger-Themen 4
S kleine suche Java Basics - Anfänger-Themen 9
D kleine spielerei mit swing Java Basics - Anfänger-Themen 5
A Kleine Tabelle . Java Basics - Anfänger-Themen 8
U kleine datenbank Java Basics - Anfänger-Themen 86
G kleine Frage Java Basics - Anfänger-Themen 4
Q Wie kann man eine kleine pause im Programm machen? Java Basics - Anfänger-Themen 13
J Kleine Connection Frage Java Basics - Anfänger-Themen 4
J kleine java aufgabe: ausgabe von sternchen Java Basics - Anfänger-Themen 20
P kleine db-aufgabe läuft nur suboptimal Java Basics - Anfänger-Themen 8
S ein paar kleine Fragen Java Basics - Anfänger-Themen 4
M Kleine Frage zu If-Bedingung Java Basics - Anfänger-Themen 4
X Kleine Frage: Split Java Basics - Anfänger-Themen 13
G sehr kleine Dezimalzahlen (BigDecimal) falsch angezeigt Java Basics - Anfänger-Themen 5
G Eigene kleine Sprache entwickeln Java Basics - Anfänger-Themen 6
T Kleine Verständnissfrage Java Basics - Anfänger-Themen 7
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
A Noch ne kleine Beanshell Frage Java Basics - Anfänger-Themen 7
B eine kleine leichte aufgabe mit einem stack programmieren Java Basics - Anfänger-Themen 2
A Kleine Anfängerfragen u.a.: Kann man Random "speichern& Java Basics - Anfänger-Themen 6
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
A Verständnisfrage Java Basics - Anfänger-Themen 12
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
P Verständnisfrage: PageFactory.initElements Java Basics - Anfänger-Themen 2
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben