Подтвердить что ты не робот

Java: определение терминов инициализация, декларация и присвоение

Я нахожу defs round, субъекты определяются их глаголами, но глаголы undefined! Итак, как вы их определяете?

Круговые определения

инициализация:, чтобы инициализировать переменную. Это можно сделать во время декларация.

присваивание:, чтобы присвоить значение переменной. Это можно сделать где угодно, только один раз с окончательным идентификатором.

: объявить значение переменной.

[обновление, попытка понять тему с помощью 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?
4b9b3361

Ответ 1

присваивание: отбрасывание старого значения переменной и замена его новым

инициализация: это особый вид назначения: первый. До объектов инициализации значение null и примитивные типы имеют значения по умолчанию, такие как 0 или false. Может быть сделано в сочетании с декларацией.

Объявление: в заявлении указывается тип переменной вместе с ее именем. Переменная может быть объявлена ​​только один раз. Он используется компилятором, чтобы помочь программистам избежать ошибок, таких как присвоение строковых значений целым переменным. Прежде чем читать или назначать переменную, эта переменная должна быть объявлена.

Ответ 2

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

Ответ 3

Декларация не означает "значение" для переменной; чтобы объявить тип переменной.

Назначение - это просто сохранение значения переменной.

Инициализация - это присвоение значения переменной во время объявления.

Эти определения также применяются к полям.

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

Однако следует отметить, что "инициализация" также имеет более расслабленное определение "первого присваивания переменной", независимо от того, где это происходит.

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

Это, однако, компилирует:

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

Здесь i может быть "инициализирован" из двух возможных местоположений с помощью простых назначений. Из-за этого, если i был массивом, вы не можете использовать синтаксис сокращенного инициализатора синтаксиса с этой конструкцией.

Таким образом, в основном "инициализация" имеет два возможных определения, в зависимости от контекста:

  • В самой узкой форме это когда присваивание сочетается с объявлением.
    • Он позволяет, помимо прочего, использовать специальный синтаксис сокращенного синтаксиса массива
  • В более общем плане, когда присваивание сначала выполняется для переменной.
    • Он позволяет, среди прочего, назначать переменную final в нескольких местах.
      • Компилятор сделает все возможное, чтобы обеспечить выполнение только одного из этих назначений, таким образом, "инициализируя" переменную final

Также существует JVM-контекстный класс и инициализация экземпляра, инициализация объекта OOP-контекста и т.д.

Ответ 4

Объявление: всякий раз, когда вы определяете новую переменную с ее типом

назначение: всякий раз, когда вы меняете значение переменной, присваивая ей новое значение

инициализация: назначение, которое выполняется вместе с объявлением, или в любом случае первое присваивание, которое выполняется с переменной, обычно это вызов конструктора для объекта или простое назначение для переменная

Ответ 5

Вот несколько примеров с некоторыми примерами.

Декларация: Декларация - это когда вы объявляете переменную с именем, а переменная может быть объявлена ​​только один раз.

Пример: int x;, String myName;, Boolean myCondition;

Инициализация: Инициализация - это когда мы помещаем значение в переменную, это происходит, когда мы объявляем переменную.

Пример: int x = 7;, String myName = "Emi";, Boolean myCondition = false;

Назначение: Назначение - это когда мы уже объявили или инициализировали переменную, и мы меняем значение. Вы можете изменить значение переменной столько раз, сколько хотите, или вам нужно.

Пример:

int x = 7; x = 12;....... Мы просто изменили значение.

String myName = "Emi"; myName = "John"....... Мы просто изменили значение.

Boolean myCondition = false; myCondition = true;....... Мы просто изменили значение.

Примечание. В памяти будет сохранено последнее значение, которое мы положили.

Ответ 6

Я исхожу из фона C/С++, но идеи должны быть одинаковыми.

Декларация. Когда объявлена ​​переменная, она сообщает компилятору выделить часть памяти и связать с ней имя (и тип переменной). В C/С++ он может выглядеть так:

int x;

Компилятор видит это и выделяет адресное местоположение для x и знает, какие методы он должен использовать для выполнения операций над x (разные типы переменных будут использовать разные операции доступа). Таким образом, когда компилятор работает в строке

x = 3 + 5;

Он знает, чтобы положить целочисленное значение 8 (а не значение с плавающей запятой 8) в ячейку памяти, также известную как "x".

Назначение - Это когда вы добавили значение в ранее объявленную переменную. Назначение связано с знаком "равно". В предыдущем примере переменной "x" было присвоено значение 8.

Инициализация - это когда переменная задана со значением. Нет никакой гарантии, что каждая переменная будет установлена ​​на какое-либо значение по умолчанию во время объявления переменной (если вы явно не сделаете это). Можно утверждать, что инициализация является первым назначением переменной, но это не совсем так, как я объясню вкратце. Типичная инициализация представляет собой смесь объявления переменной с присваиванием следующим образом:

int x = 6;

Различие между инициализацией и присваиванием становится более важным при работе с константами, такими как...

const int c = 15;

При работе с константами вы получаете возможность присваивать их значение во время объявления/инициализации. В противном случае их нельзя трогать. Это связано с тем, что константы часто расположены в памяти программ и памяти данных, и их фактическое назначение происходит во время компиляции и времени выполнения.

Ответ 7

Шаг 1: Декларация: int a;

Шаг 2: Инициализация: a = 5;

Шаг 3: Назначение: a = b; (ex: int b = 10, теперь a становится 10)