Описание
Присвоение значения переменной кажется достаточно простым; вы просто присваиваете то, что справа от знака ‘=’, переменной слева. Ниже оператор 1 присваивает значение 10 переменной x, а оператор 2 создает объект String с именем name и присваивает ему значение «Amit».
Утверждение 1: x = 10; утверждение 2: String name = new String ("Amit");
Присвоение может быть разных типов. Давайте подробно обсудим каждый из них.
ads
Примитивное назначение:
Равное (= Знак) используется для присвоения значения переменной. Мы можем присвоить примитивную переменную, используя литерал или результат выражения.
int x = 7; //буквальное присвоение int y = x + 2; //присвоение с выражением int z = x * y; //присвоение с выражением с литералом
Primitive Casting
Casting позволяет вам преобразовывать примитивные значения из одного типа в другой. Нам нужно обеспечить приведение типов, когда мы пытаемся назначить примитив с более высокой точностью примитиву с более низкой точностью, например, если мы попытаемся назначить переменную int (которая находится в диапазоне байтовой переменной) байтовой переменной, тогда компилятор выдаст исключение под названием «возможно» потеря точности ». Eclipse IDE предложит решение, как показано ниже. Чтобы избежать такой проблемы, мы должны использовать приведение типов, которое проинструктирует компилятор о преобразовании типов.
byte v = (byte) a;
В случаях, когда мы пытаемся назначить меньшую переменную контейнера большим переменным контейнера, нам не требуется явное приведение типов. Компилятор позаботится об этих преобразованиях типов. Например, мы можем присвоить байтовую переменную или короткую переменную int без явного приведения типов.
Назначение литерала, который слишком велик для переменной
Когда мы пытаемся присвоить значение переменной, которое слишком велико (или выходит за пределы диапазона) для примитивной переменной, компилятор выдаст исключение «возможная потеря точности», если мы попытаемся предоставьте явное приведение, тогда компилятор примет его, но сузил значение с помощью метода дополнения до двух. Давайте возьмем пример байта, который имеет 8-битное пространство для хранения и диапазон от -128 до 127. В приведенной ниже программе мы пытаемся присвоить 129 буквальное значение байтовому примитивному типу, который выходит за пределы диапазона для байта, поэтому компилятор преобразовал его в -127 используя метод дополнения до двух. Ссылка для вычисления дополнения до двух (http://en.wikipedia.org/wiki/Two’s_complement)
Код Java: перейти в редактор
открытый класс ExplicitCastingDemo {public static void main (String [] args) {byte b = (byte) 129; System.out.println ("Value of b =" + b);}}
Вывод:
Назначение ссылочной переменной
Мы можем назначить вновь созданный объект ссылочной переменной объекта, как показано ниже
String s = new String («Amit»); Employee e = New Employee ();
Первая строка будет выполнять следующие действия,
- Создает ссылочную переменную с именем s типа String
- Создает новый объект String в памяти кучи
- Назначает вновь созданный объект String ссылочным переменным
Вы также можете присвоить null переменной ссылки на объект, что просто означает, что переменная не ссылается ни на какой объект. Приведенный ниже оператор создает пространство для переменной ссылки Employee (держателя бита для ссылочного значения), но не создает фактический объект Employee.
Employee a = null;
Операторы составного присваивания
Иногда нам нужно изменить одно и то же значение переменной и переназначить его той же ссылочной переменной. Java позволяет комбинировать присвоение и добавление операторы с использованием сокращенного оператора. Например, предыдущий оператор можно записать как:
i + = 8; //То же, что и i = i + 8;
+ = называется оператором сложения присваивания. Другие сокращенные операторы показаны под таблицей
Оператор | Имя | Пример | Эквивалент |
---|---|---|---|
+ = | Назначение сложения | i + = 5; | i = i + 5 |
— = | Вычитание присвоение | j- = 10; | j = j-10; |
* = | Назначение умножения | k*=2; | k=k*2; |
/= | Назначение деления | x/= 10; | x = x/10; |
% = | Назначение остатка | a% = 4; | a = a% 4; |
Ниже приведен пример программы, объясняющей операторы присваивания:
Код Java: перейти в редактор
public class AssignmentOperatorDemo {public static void main (String [] args) {//Литеральный примитивный байт присвоения b = 25; System.out.println ("Присвоение примитивного байта-" + b); //Присваивание одного примитива другому примитивному байту c = b; System.out.println ("Присвоение байта примитива из другой байтовой переменной-" + c);//Литеральное присвоение на основе арифметической операции int a = 23 + b; System.out .println ("Примитивное присвоение int из арифметической операции-" + a);//Неявное приведение переменных x и yshort s = 45; int x = b; int y = s; System.out.println ("Неявное приведение байта to int- "+ x); System.out.println (" Неявное преобразование короткого замыкания в int- "+ y);//Операторы краткого присвоения int i = 10; i + = 10; System.out.println (" Добавление Оператор- "+ i); i- = 10; System.out.println (" Оператор вычитания- "+ i); i * = 10; System.out.println (" Оператор умножения- "+ i); i/= 10; Syst em.out.println ("Оператор деления-" + i); i% = 3; System.out. println ("Оператор напоминания-" + i);}}
Вывод:
Резюме
- Присвоение значения может быть прямым или преобразованным.
- Если мы присваиваем значение, выходящее за пределы диапазона типа переменной, то назначается дополнение до 2.
- Java поддерживает сокращенный/составной оператор присваивания.
Редактор кода Java: