Also ich kann Dir (
@Tobias-nrw) nicht wirklich folgen.
Wenn wir hier reden, dann brauchen wir eine klare Grundlage. Diese wird bei Java durch die Java Language Specification gegeben. Und da ist eine solche Unterscheidung nicht zu finden.
Wenn man nun spezieller Begriffe nutzen möchte, dann sollten diese klar definiert werden vor der Nutzung. Ansonsten gehen wir von den üblichen Wörtern aus wie sie z.B. bei Wikipedia definiert sind.
Bezüglich Java ist es wie schon gesagt die JLS und da speziell das 4. Kapitel. So z.B. speziell:
https://docs.oracle.com/javase/specs/jls/se12/html/jls-4.html#jls-4.12.5
"A local variable (
§14.4,
§14.14) must be explicitly given a value before it is used, by either initialization (
§14.4) or assignment (
§15.26), in a way that can be verified using the rules for definite assignment (
§16 (Definite Assignment))."
https://docs.oracle.com/javase/specs/jls/se12/html/jls-6.html#jls-6.3
"The scope of a local variable declaration in a block (
§14.4) is the rest of the block in which the declaration appears, starting with its own initializer and including any further declarators to the right in the local variable declaration statement."
Hier könnte man meinen, dass "own initializer" meint, dass es mit der Initialisierung startet, aber das Bezieht sich auf:
https://docs.oracle.com/javase/specs/jls/se12/html/jls-14.html#jls-14.4, denn da wird der Aufbau einer Variablen Deklaration beschrieben welche auch ein VariableInitializer Teil enthalten kann. Und nur so macht der Part mit dem "including any further declarators" Sinn, denn bei der Deklaration von Variablen können mehrere Variablen deklariert werden. Aber das sieht man ja sehr schön in den Kästchen von 14.4.
(
@mrBrown Hoffe ich durfte das auch ausführen?)
Was Wikipedia angeht: Da habe ich jetzt so auf Anhieb nicht diese Unterscheidung gefunden. Und daher wäre ich auch der Meinung, dass die einzelnen Begriffe das Gleiche bezeichnen. (Und nur weil eine Variable keinen gültigen Wert hat und somit nicht gelesen werden kann, bedeutet das nicht, dass die Variable ungültig ist. Die Variable ist ja verwendbar.)
Bezüglich So Bereiche groß zu halten: Diese Aussage nachdem wir hier mindestens zwei Diskussionen zu Clean Code hatten bei denen Du auch mitgemischt hast, finde ich schon etwas unverständlich....