Операторы назначения Java
Описание
Присвоение значения переменной кажется достаточно простым; Вы просто назначаете материал с правой стороны от '=' для переменной слева. Ниже оператора 1 присваивается значение 10 переменной x, а оператор 2 создает объект String с именем name и присваивает ему значение «Amit».
Заявление 1: х = 10; Оператор 2: имя строки = новая строка ("Amit");
Назначение может быть разных типов. Давайте обсудим каждый подробно.
Объявления
Примитивное назначение:
Знак равенства (=) используется для присвоения значения переменной. Мы можем назначить примитивную переменную, используя литерал или результат выражения.
int x = 7; // буквальное присваивание int y = x + 2; // присваивание с выражением int z = x * y; // присваивание с выражением с литералом
Примитивный Кастинг
Приведение позволяет преобразовывать примитивные значения из одного типа в другой. Нам нужно обеспечить приведение, когда мы пытаемся назначить примитив с более высокой точностью, например, примитив с более низкой точностью. Если мы пытаемся присвоить переменной байта (которая находится в диапазоне байтовой переменной) байтовую переменную, то компилятор сгенерирует исключение, называемое «возможный». потеря точности ". Eclipse IDE предложит решение, как показано ниже. Чтобы избежать такой проблемы, мы должны использовать приведение типов, которое будет инструктировать компилятор для преобразования типов.
байт v = (байт) a;
В случаях, когда мы пытаемся назначить меньшую переменную контейнера более крупным переменным контейнера, нам не нужно явное приведение. Компилятор позаботится об этих преобразованиях типов. Например, мы можем присвоить байтовую переменную или короткую переменную int без какого-либо явного приведения.
Назначение литерала, который слишком велик для переменной
Когда мы пытаемся присвоить значение переменной, которое является слишком большим (или выходит за пределы диапазона) для примитивной переменной, тогда компилятор выдает исключение «возможная потеря точности», если мы пытаемся обеспечить явное приведение, тогда компилятор примет его, но сузится значение с использованием метода дополнения до двух. Давайте возьмем пример байта с 8-битным пространством хранения и диапазоном от -128 до 127. В следующей программе мы пытаемся присвоить литеральному значению 129 значение типа примитива, который находится вне диапазона для байта, поэтому компилятор преобразовал его в -127 используя метод дополнения до двух. Ссылка для расчета двух дополнений (http://en.wikipedia.org/wiki/Two's_complement)
Java-код: перейти к редактору
public class ExplicitCastingDemo {
public static void main(String[] args) {
byte b = (byte)129;
System.out.println("Value of b=" + b);
}
}
Выход:
Назначение ссылочной переменной
Мы можем присвоить вновь созданный объект ссылочной переменной объекта, как показано ниже
String s = новая строка («Amit»); Сотрудник e = Новый сотрудник ();
Первая строка будет делать следующие вещи,
- Делает ссылочную переменную с именем s типа String
- Создает новый объект String в памяти кучи
- Назначает вновь созданный объект String ссылочным переменным
Вы также можете присвоить null переменную ссылки на объект, что просто означает, что переменная не ссылается на какой-либо объект. Оператор ниже создает пространство для ссылочной переменной Employee (держатель бита для ссылочного значения), но не создает фактический объект Employee.
Сотрудник а = ноль;
Составные операторы присваивания
Иногда нам нужно изменить одно и то же значение переменной и переназначить его на одну и ту же ссылочную переменную. Java позволяет объединять операторы присваивания и сложения, используя сокращенный оператор. Например, предыдущее утверждение может быть записано как:
я + = 8; // Это то же самое, что и i = i + 8;
Знак + = называется оператором сложения. Другие сокращенные операторы показаны ниже таблицы
оператор | название | пример | эквивалент |
---|---|---|---|
+ = | Назначение дополнения | I + = 5; | I = I + 5 |
знак равно | Вычитание присваивания | j- = 10; | J = J-10; |
знак равно | Умножение назначения | к * = 2; | K = K * 2; |
знак равно | Назначение отдела | х / = 10; | х = х / 10; |
знак равно | Остальное назначение | A% = 4; | а =% 4; |
Ниже приведен пример программы, объясняющей операторы присваивания:
Java-код: перейти к редактору
public class AssignmentOperatorDemo {
public static void main(String[] args) {
//Literal Primitive Assignment
byte b = 25;
System.out.println("Primitive byte Assignment- "+ b);
//Assigning one primitive to another primitive
byte c =b;
System.out.println("Primitive byte Assignment from another byte variable- "+ c);
//Literal assignment based on arithmetic operation
int a = 23+b;
System.out.println("Primitive int Assignment from arithmetic operation- "+ a);
//Implicit Casting of variable x and y
short s = 45;
int x = b;
int y = s;
System.out.println("Implicit Casting of byte to int- "+ x);
System.out.println("Implicit Casting of short to int- "+ y);
//Short-Hand Assignment Operators
int i = 10;
i+=10;
System.out.println("Addition Oprator- "+ i);
i-=10;
System.out.println("Subtraction Oprator- "+ i);
i*=10;
System.out.println("Multiplication Operator- " + i);
i/=10;
System.out.println("Division Operator- " + i);
i%=3;
System.out.println("Reminder Operator- " + i);
}
}
Выход:
Резюме
- Присвоение значения может быть прямым или приведением.
- Если мы присваиваем значение, которое находится вне диапазона типа переменной, то присваивается дополнение 2.
- Java поддерживает быстрый / сложный оператор присваивания.
Редактор кода Java:
Предыдущий: классы Wrapper
Далее: Арифметический оператор
Новый контент: Composer: менеджер зависимостей для PHP , R программирования