Что такое классы оболочки?




Раньше Вы знакомились с примитивными типами данных (такими, как 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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: