Раньше Вы знакомились с примитивными типами данных (такими, как int, short, boolean и т.д.):
Тем не менее, Вы знаете, что Java - объектно-ориентированный язык программирования. Это значит, что в ней "все, что можно, представлено в виде объектов".
Поэтому, у примитивных типов есть объекты-аналоги - так называемые "классы оболочки", или "wrapper" (с англ. "обертка, упаковка"):
Класс называется "оболочкой" потому, что он, по сути, копирует то, что уже существует, но добавляет новые возможности для работы с привычными типами.
О названиях
Имена классов нетрудно запомнить - они повторяют имена примитивных типов данных:
Обратите внимание - все классы оболочки пишутся с большой буквы:
Зачем так усложнять
Но зачем они нужны? Если есть обычный int, short,..., зачем нам Short и Integer? Или, может, оставить только классы оболочки, и не пользоваться примитивами, раз у них функций больше?
Примитивы и их аналоги, классы оболочки, существуют параллельно, потому что у каждого есть преимущества.
Например, обычный int занимает меньше места, и если нет необходимости проводить над ним особые операции, Ваш компьютер будет работать быстрее.
В свою очередь, с помощью класса-оболочки Integer можно выполнять специальные операции - например, перевести текст в число (с помощью метода .parseInt() для Integer-а). Если попробовать сделать это с помощью кода самому придется изрядно повозиться.
Integer и int можно сравнить с компьютером и записной книжкой:
Компьютер, безусловно, может больше, чем блокнот - но Вы не будете целый день носить с собой три килограмма для того, чтобы сделать несколько заметок?
Кроме того, есть ситуации, когда нельзя использовать объекты, или наоборот, когда можно использовать только объекты.
|
Метод.parseInt()
Иногда в объекте типа String содержится число, и Вам нужно с ним работать дальше - умножать, делить, в степень возводить. Но нельзя! Строка же. Что делать?
public class Test {
public static void main(String[] args){
String a = "11";
int b = a;
System.out.println(b);
}
}
Нам видно, что 11 - это число, но выдает ошибку:
Можно исправить это с помощью .parseInt() (для int; для long будет.parseLong(), и так далее). Он объявляется так:
Название класса оболочки зависит от типа примитива, которому присваивается значение:
Пример:
public class Test {
public static void main(String[] args){
String a = "11";
int b = Integer.parseInt(a);
System.out.println(b);
}
}
Теперь все работает и на экран выводится число 11:
Вот Вы и знаете, что такое классы оболочки и как их использовать!
Основные операции с переменными
В Java все операторы можно разбить на 3 группы:
Арифметические
Логические
Побитовые
1. Арифметические и сокращённые арифметические операторы:
m += 7; // это всё равно что m = m+7;
m -= 7; // это всё равно что m = m-7;
m*= 7; // это всё равно что m = m*7;
m/= 7; // это всё равно что m = m/7;
m%=7;// это всё равно что m = m%7;
§ % - это оператор деления по модулю. Возвращает остаток от деления.
§ Инкремент - отвечает за увеличение переменной на единицу. Например, n++
§ Декремент - отвечает за уменьшение переменной на единицу. Например, n--
Существует 2 формы инкремента и декремента:
1. постфиксная (пример: n++)
2. префиксная (пример: ++n)
В постфиксной форме:
§ сначала используется старое значение в вычисления
|
§ далее в последующих вычислениях используется уже новое значение
В префиксной форме:
§ сразу используется новое значение в вычислениях
Инкремент и декремент применяются только к переменной. Например, выражения типа 8++ или ++8 считаются недопустимыми.
Примечание: инкремент еще иногда называют операцией инкрементирования, а декремент - операцией декрементирования
2. Логические операции:
Модификаторы
https://proglang.su/java/modifiers#modifikator-dostupa-private