Java: define inicialización de términos, statement y asignación

Encuentro los defs circulares, los sujetos están definidos por sus verbos pero los verbos no están definidos. Entonces, ¿cómo los defines?

Las definiciones circulares

inicialización: para inicializar una variable. Se puede hacer en el momento de la statement.

asignación: para asignar valor a una variable. Se puede hacer en cualquier lugar, solo una vez con el identificador final.

statement: declarar valor a una variable.

[actualización, tratando de entender el tema con lambda calc]

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? 

asignación : tirar el antiguo valor de una variable y reemplazarlo por uno nuevo

inicialización : es un tipo especial de tarea: la primera. Antes de la inicialización, los objetos tienen valores null y los tipos primitivos tienen valores predeterminados como 0 o false . Se puede hacer junto con la statement.

statement : una statement indica el tipo de una variable, junto con su nombre. Una variable puede declararse solo una vez. Es utilizado por el comstackdor para ayudar a los progtwigdores a evitar errores como la asignación de valores de cadena a variables enteras. Antes de leer o asignar una variable, esa variable debe haber sido declarada.

 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 

La statement no es para declarar “valor” a una variable; es para declarar el tipo de la variable.

La asignación es simplemente el almacenamiento de un valor a una variable.

La inicialización es la asignación de un valor a una variable en el momento de la statement .

Estas definiciones también se aplican a los campos.

 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 

Sin embargo, debe mencionarse que la “inicialización” también tiene una definición más relajada de “la primera asignación a una variable”, independientemente de dónde ocurra.

 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 

Esto, sin embargo, comstack:

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

Aquí puedo ser “inicializado” desde dos ubicaciones posibles, por asignaciones simples. Por eso, si i fuera una matriz, no puedes usar la syntax abreviada de inicializador de matriz especial con esta construcción.

Entonces, básicamente, la “inicialización” tiene dos definiciones posibles, según el contexto:

  • En su forma más estrecha, es cuando una tarea se combina con la statement.
    • Permite, entre otras cosas, la syntax de inicializador abreviado de matriz especial
  • En términos más generales, es cuando una asignación se hace por primera vez a una variable.
    • Permite, entre otras cosas, asignaciones a una variable final en múltiples lugares.
      • El comstackdor haría todo lo posible para garantizar que exactamente una de esas asignaciones pueda suceder, “inicializando” así la variable final

También hay clase de contexto JVM e inicialización de instancia, inicialización de objeto de contexto OOP, etc.

statement : cada vez que defines una nueva variable con su tipo

asignación : siempre que cambie el valor de una variable dándole un nuevo valor

inicialización : una asignación que se realiza junto con la statement, o en cualquier caso la primera asignación que se hace con una variable, por lo general es una llamada de constructor para un objeto o una asignación simple para una variable

Aquí hay una breve explicación con algunos ejemplos.

Declaración: Declaración es cuando declaras una variable con un nombre, y una variable puede declararse solo una vez.

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

Inicialización: Inicialización es cuando ponemos un valor en una variable, esto sucede mientras declaramos una variable.

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

Asignación: Asignación es cuando ya declaramos o inicializamos una variable, y estamos cambiando el valor. Puede cambiar el valor de la variable tantas veces como desee o necesite.

Ejemplo:

int x = 7; x = 12; ……. Acabamos de cambiar el valor.

String myName = "Emi"; myName = "John" String myName = "Emi"; myName = "John" ……. Simplemente cambiamos el valor.

Boolean myCondition = false; myCondition = true; ……. Acabamos de cambiar el valor.

Nota: En la memoria se guardará el último valor que ponemos.

Vengo de un fondo de C / C ++, pero las ideas deberían ser las mismas.

Declaración : cuando se declara una variable, le está diciendo al comstackdor que reserve una parte de la memoria y asocie un nombre (y un tipo de variable) con ella. En C / C ++ podría verse así:

 int x; 

El comstackdor ve esto y reserva una ubicación de dirección para x y sabe qué métodos debe usar para realizar operaciones en x (diferentes tipos de variables usarán diferentes operaciones de acceso). De esta manera, cuando el comstackdor se ejecuta en la línea

 x = 3 + 5; 

Sabe poner el valor entero 8 (no el valor de punto flotante 8) en la ubicación de la memoria también conocida como ‘x’.

Asignación : es cuando se rellena un valor en la variable declarada previamente. La asignación está asociada con el ‘signo igual’. En el ejemplo anterior, a la variable ‘x’ se le asignó el valor 8.

Inicialización : es cuando una variable está preestablecida con un valor. No hay garantía de que una variable se establezca en algún valor predeterminado durante la statement de la variable (a menos que explícitamente lo haga). Se puede argumentar que la inicialización es la primera asignación de una variable, pero esto no es del todo cierto, como explicaré en breve. Una inicialización típica es una combinación de la statement de variable con una asignación de la siguiente manera:

 int x = 6; 

La distinción entre inicialización y asignación se vuelve más importante cuando se trata de constantes, como esta …

 const int c = 15; 

Cuando se trata de constantes, solo se puede asignar su valor en el momento de la statement / inicialización. De lo contrario, no pueden ser tocados. Esto se debe a que las constantes a menudo se ubican en la memoria de progtwig frente a la memoria de datos, y su asignación real se produce en tiempo de comstackción frente a tiempo de ejecución.

Paso 1: Declaración : int a;

Paso 2: Inicialización : a = 5;

Paso 3: Asignación : a = b; (por ejemplo: int b = 10; ahora a se convierte en 10)