Глава 3: примитивные типы и операции с ними в java

13
Глава 3. Примитивные типы данных и операторы для работы с ними Булевский (логический) тип Целые типы, переменные, константы Основные операторы для работы с целочисленными величинами Вещественные типы и класс Math Правила явного и автоматического преобразования типа при работе с числовыми величинами Оболочечные классы. Упаковка (boxing) и распаковка (unboxing) Приоритет операторов Типы-перечисления ( enum) Курс подготовлен при поддержке Sun Microsystems Правила использования материалов опубликованы на www.sun.ru

Upload: metaform

Post on 15-Jun-2015

18.994 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Глава 3: примитивные типы и операции с ними в Java

Глава 3. Примитивные типы данных и

операторы для работы с ними ● Булевский (логический) тип ● Целые типы, переменные, константы ● Основные операторы для работы с целочисленными

величинами ● Вещественные типы и класс Math ● Правила явного и автоматического преобразования

типа при работе с числовыми величинами ● Оболочечные классы. Упаковка (boxing) и распаковка

(unboxing) ● Приоритет операторов ● Типы-перечисления ( enum)

Курс подготовлен при поддержке Sun MicrosystemsПравила использования материалов опубликованы на www.sun.ru

Page 2: Глава 3: примитивные типы и операции с ними в Java

Булевский (логический) тип и логические операторы

● Логические операторы: && -“И” || - “ИЛИ” ^ - “Исключающее ИЛИ” ! - “НЕ”

● Логические выражения в Java вычисляются в соответствии с укороченным оцениванием. Принимают значения true или false.

● Операторы сравнения применимы к любым величинам a и b одного типа, а также к произвольным числовым величинам a и b, не обязательно имеющим один тип: = = -“равно” != - “не равно” < - “меньше” > - “больше”

● Оператор принадлежности instanceof .

Page 3: Глава 3: примитивные типы и операции с ними в Java

Целые типы

● byte : -128..127; байтовое целое со знаком● short : - 32768.. 32767; короткое целое● char : \u0000..\uFFFF=0.. 65535; символ

(беззнаковое 16- битное целое)● int : - 2.147483648E9.. 2.147483647E9; целое

число (32- битное целое со знаком)● long : -9.22337203685478E18..

9.22337203685478E18; длинное целое (64- битное целое со знаком)

Page 4: Глава 3: примитивные типы и операции с ними в Java

Целые типы, переменные, константы● Для задания в тексте программы численных

литерных констант типа long, выходящих за пределы диапазона чисел типа int, после написания числа следует ставить постфикс – букву L или l.

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

Page 5: Глава 3: примитивные типы и операции с ними в Java

Основные операторы для работы с целочисленными величинами I

● + Оператор сложения i+j● – Оператор вычитания i-j● * Оператор умножения i*j● / Оператор деления i/j● % Оператор остатка от целочисленного

деления i%j

Page 6: Глава 3: примитивные типы и операции с ними в Java

Основные операторы для работы с целочисленными величинами II

● = Присваивание v=i● ++ Инкремент (увеличение на 1) v++● -- Декремент (уменьшения на 1) v- -● += v+=i● -= v-=i● *= v*=i● /= v/=i● %= v%=i

Page 7: Глава 3: примитивные типы и операции с ними в Java

Вещественные типы

● float 4 байта1.5*E-45..3.4E38 “Одинарная” точность, 7-8 значащих десятичных цифр мантиссы. Тип real*4 стандарта IEEE754

● double 8 байт 5E-324..1.7E308 “Двойная” точность, 15..16 значащих цифр мантиссы. Тип real*8 стандарта IEEE754

Page 8: Глава 3: примитивные типы и операции с ними в Java

Функции класса Math● Математические функции, а также

константы “пи” (Math.PI) и “е” (Math.E ) заданы в классе Math, находящемся в пакете java.lang .

● sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y, x), toRadians(angdeg), toDegrees(angrad)

● exp(x), expm1(x), log(x), log10(x), log1p(x), sqrt(x), cbrt(x), hypot(x,y), pow(x, y), sinh(x), cosh(x), tanh(x)

Page 9: Глава 3: примитивные типы и операции с ними в Java

Функции класса Math

● abs(m), abs(x), signum(a), signum(x), min(m,n), min(x,y), max(m,n), max(x,y)

● ceil(x), floor(x), round(a), round(x), rint(x), ulp(a), ulp(x)

● random()● IEEEremainder(x,y)

Page 10: Глава 3: примитивные типы и операции с ними в Java

Правила преобразования типа● Целочисленные вычисления проводятся на аппаратном

уровне только с величинами типа int или long. Величины типа byte, short или char сначала преобразуются в int, после чего производится их подстановка в качестве операндов. Если один из операндов типа long, другой целочисленный операнд автоматически преобразуется к этому типу, и действия производятся с числами типа long.

● Если один из операндов типа double, а другой float, значение float автоматически преобразуется к типу double, и действия производятся с числами типа double.

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

Page 11: Глава 3: примитивные типы и операции с ними в Java

Оболочечные классы● Каждому примитивному типу сопоставляется оболочечный класс. В

общем случае они имеют те же имена, что и примитивные типы, но начинающиеся не со строчной, а с заглавной буквы. Исключение составляют типы int и char, для которых имена оболочечных классов Integer и Character.

● Основное назначение оболочечных классов – создание объектов, являющихся оболочками над значениями примитивных типов. Процесс создание такого объекта (“коробки” - box) из значения примитивного типа называется упаковкой (boxing), а обратное преобразование из объекта в величину примитивного типа – распаковкой (unboxing). Упаковка и распаковка для числовых классов осуществляется автоматически.

● Константы и методы : Integer.MIN_VALUE, Integer.MAX_VALUE, Float.MIN_VALUE , Float.MAX_VALUE, Double.MIN_VALUE , Double.MAX_VALUE, Integer.parseInt(строка), Long.parseLong(строка), Float.parseFloat(строка), Double.parseDouble(строка) и т.п.

Page 12: Глава 3: примитивные типы и операции с ними в Java

Приоритет операторов● В Java имеется 15 уровней приоритета

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

● 1высший Постфиксные; 2 Унарные; 3 Создания объектов и преобразования типа; 4 Мультипликатив-ные; 5 Аддитивные; 6 Сдвиги битов; 7 Отношения; 8 Эквивалентности; 9 Побитовое И; 10 Побитовое исключающее ИЛИ; 11Побитовое ИЛИ; 12 Логическое И; 13Логическое ИЛИ; 14 Условный; 15низший Присваивания

Page 13: Глава 3: примитивные типы и операции с ними в Java

Перечисления● Иногда требуется использовать элементы, которые не

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

● Пример задания типа: enum Spring { march, apr, may };● Доступ к элементу перечисления осуществляется с

квалификацией именем типа-перечисления: ИмяТипа.имяЭлемента . Пример: Spring.March

● Задание переменных: Spring spr1=Spring.apr, spr2;