it-swarm.com.de

Java: Definition der Begriffe Initialisierung, Deklaration und Zuweisung

Ich finde das Defs-Rundschreiben, die Subjekte werden durch ihre Verben definiert, aber die Verben sind undefiniert! Wie definierst du sie?

Die Zirkulardefinitionen

Initialisierung: um eine Variable zu initialisieren. Dies kann zum Zeitpunkt der -Deklaration erfolgen.

Zuordnung: Wert einer Variablen zuweisen. Es kann überall gemacht werden, nur einmal mit dem endgültigen Bezeichner.

Deklaration: Wert einer Variablen deklarieren.

[Update, Versuch, das Thema mit Lambda calc zu verstehen]

D(x type) = (λx.x is declared with type) 
A(y D(x type)) = (λy.y is assigned to D(x type))

%Then after some beta reductions we get initialization.
D(x type) me human                  // "me" declared with type "human"
A(y (D(x type) me human)) asking    // "asking" assigned to the last declaration

%if the last two statemets are valid, an initialization exists. Right?
35
hhh

Zuordnung : den alten Wert einer Variablen wegwerfen und durch einen neuen ersetzen

Initialisierung : Es ist eine spezielle Art der Zuweisung: die erste. Vor der Initialisierung haben Objekte einen null-Wert und Grundtypen haben Standardwerte wie 0 oder false. Kann in Verbindung mit Deklaration erfolgen.

Deklaration : Eine Deklaration gibt den Typ einer Variablen sowie ihren Namen an. Eine Variable kann nur einmal deklariert werden. Es wird vom Compiler verwendet, um Programmierern dabei zu helfen, Fehler zu vermeiden, z. B. das Zuweisen von String-Werten zu Integer-Variablen. Vor dem Lesen oder Zuweisen einer Variablen muss diese Variable deklariert worden sein.

62
Silvio Donnini
String declaration;
String initialization = "initialization";
declaration = "initialization"; //late initialization - will initialize the variable.
    // Without this, for example, in Java, you will get a compile-time error if you try 
    // to use this variable.

declaration = "assignment"; // Normal assignment. 
    // Can be done any number of times for a non-final variable
60
John

Deklaration soll nicht "Wert" für eine Variable deklarieren; Es ist die Angabe von type der Variablen.

Zuweisung ist einfach das Speichern eines Wertes in einer Variablen.

Initialisierung ist die Zuweisung eines Wertes an eine Variable zum Zeitpunkt der Deklaration .

Diese Definitionen gelten auch für Felder.

int i;  // simple declaration
i = 42  // simple assignment

int[] arr = { 1, 2, 3 };
// declaration with initialization, allows special shorthand syntax for arrays

arr = { 4, 5, 6 }; // doesn't compile, special initializer syntax invalid here
arr = new int[] { 4, 5, 6 }; // simple assignment, compiles fine

Es sollte jedoch erwähnt werden, dass "Initialisierung" auch die Definition der "ersten Zuweisung zu einer Variablen" definiert hat, unabhängig davon, wo dies geschieht.

int i; // local variable declaration
if (something) i = 42;
System.out.println(i);
  // compile time error: The local variable i may not have been initialized

Dies kompiliert jedoch:

int i; // the following also compiles if i were declared final
if (something) i = 42;
else i = 666;
System.out.println(i);

Hier kann i von zwei möglichen Stellen durch einfache Zuweisungen "initialisiert" werden. Wenn i ein Array war, können Sie daher die Abkürzungssyntax des speziellen Array-Initialisierers nicht mit diesem Konstrukt verwenden.

Grundsätzlich hat "Initialisierung" je nach Kontext zwei mögliche Definitionen:

  • In seiner engsten Form wird eine Zuweisung mit der Deklaration ..__ kombiniert.
    • Es ermöglicht unter anderem eine spezielle Array-Kurzschreib-Initialisierungssyntax
  • Allgemeiner ist es, wenn zuerst eine Zuweisung zu einer Variablen gemacht wird .
    • Es erlaubt unter anderem die Zuweisung einer Variable final an mehreren Stellen .
      • Der Compiler würde sein Bestes geben, um sicherzustellen, dass genau eine dieser Zuordnungen passieren kann, wodurch die Variable final "initialisiert" wird

Es gibt auch eine JVM-Kontextklassen- und Instanzinitialisierung, eine OOP-Kontextobjektinitialisierung usw.

9

Deklaration : Immer wenn Sie eine neue Variable mit ihrem Typ definieren

Zuordnung : Immer wenn Sie den Wert einer Variablen ändern, indem Sie ihr einen neuen Wert zuweisen

Initialisierung : Eine Zuweisung, die zusammen mit der Deklaration ausgeführt wird, oder in jedem Fall die erste Zuweisung, die mit einer Variablen ausgeführt wird. Normalerweise handelt es sich dabei um einen Konstruktoraufruf für ein Objekt oder eine einfache Zuweisung für eine Variable

3
Jack

Hier eine kurze Erklärung mit einigen Beispielen.

Deklaration: Deklaration ist, wenn Sie eine Variable mit einem Namen deklarieren und eine Variable nur einmal deklariert werden kann.

Beispiel: int x;, String myName;, Boolean myCondition;

Initialisierung: Die Initialisierung ist, wenn wir einen Wert in eine Variable schreiben. Dies geschieht, wenn wir eine Variable deklarieren.

Beispiel: int x = 7;, String myName = "Emi";, Boolean myCondition = false;

Zuweisung: Zuweisung ist, wenn wir bereits eine Variable deklariert oder initialisiert haben und den Wert ändern. Sie können den Wert der Variablen beliebig oft ändern.

Beispiel: 

int x = 7; x = 12; ....... Wir haben gerade den Wert geändert.

String myName = "Emi"; myName = "John" ....... Wir haben gerade den Wert geändert.

Boolean myCondition = false; myCondition = true; ....... Wir haben gerade den Wert geändert.

Hinweis: Im Speicher wird der letzte von uns eingegebene Wert gespeichert.

3
Emm

Schritt 1: Deklaration : int a;

Schritt 2: Initialisierung : a = 5;

Schritt 3: Zuordnung : a = b; (ex: int b = 10; jetzt wird a 10)

0
user2934504

Ich komme aus einem C/C++ - Hintergrund, aber die Ideen sollten die gleichen sein.

Erklärung - Wenn eine Variable deklariert wird, weist sie den Compiler an, einen Speicherplatz zu reservieren und ihm einen Namen (und einen Variablentyp) zuzuordnen. In C/C++ könnte es so aussehen:

int x;

Der Compiler sieht dies und legt einen Adressort für x fest und weiß, welche Methoden er für die Ausführung von Operationen für x verwenden soll (verschiedene Variablentypen verwenden unterschiedliche Zugriffsoperationen). Auf diese Weise, wenn der Compiler die Zeile erreicht 

x = 3 + 5;

Es kann den ganzzahligen Wert 8 (nicht den Fließkommawert 8) in den Speicherplatz eingeben, der auch als 'x' bezeichnet wird.

Zuordnung - Dies ist der Fall, wenn Sie einen Wert in die zuvor deklarierte Variable einfügen. Die Zuordnung ist mit dem Gleichheitszeichen verknüpft. Im vorherigen Beispiel wurde der Variablen 'x' der Wert 8 zugewiesen.

Initialisierung - Dies ist der Fall, wenn eine Variable mit einem Wert vorbelegt ist. Es gibt keine Garantie dafür, dass eine Variable während der Variablendeklaration auf einen Standardwert gesetzt wird (es sei denn, Sie machen dies ausdrücklich). Es kann argumentiert werden, dass die Initialisierung die erste Zuweisung einer Variablen ist, dies ist jedoch nicht ganz richtig, wie ich in Kürze erläutern werde. Eine typische Initialisierung ist eine Mischung der Variablendeklaration mit einer Zuweisung wie folgt:

int x = 6;

Die Unterscheidung zwischen Initialisierung und Zuweisung wird beim Umgang mit Konstanten wie dieser wichtiger ...

const int c = 15;

Beim Umgang mit Konstanten können Sie ihren Wert nur zum Zeitpunkt der Deklaration/Initialisierung zuweisen. Ansonsten können sie nicht berührt werden. Dies liegt daran, dass Konstanten sich häufig im Programmspeicher im Vergleich zum Datenspeicher befinden und deren tatsächliche Zuweisung zur Kompilierungszeit im Vergleich zur Laufzeit erfolgt.

0
bill