Чтение онлайн

на главную - закладки

Жанры

Программирование на Java

Вязовик Н.А.

Шрифт:

bObj.shortValue);

System.out.println("The sum = " +

sum.doubleValue);

}

В данном примере произвольным образом используются различные варианты классов-оберток и их методов. В результате выполнения на экран будет выведено следующее:

while i==b is true

iObj.equals(bObj) is false

lObj = 1000

The sum = 1002.0

Оставшиеся классы-обертки числовых типов Float и Double, помимо описанного для целочисленных примитивных типов, дополнительно содержат определения следующих констант (они подробно разбирались в лекции 4):

* NEGATIVE_INFINITY – отрицательная бесконечность;

* POSITIVE_INFINITY – положительная бесконечность;

* NaN – нечисловое значение.

Кроме

того, другой смысл имеет значение MIN_VALUE – вместо наименьшего значения оно представляет минимальное положительное (строго > 0) значение, которое может быть представлено этим примитивным типом.

Кроме классов-оберток для примитивных числовых типов, таковые определены и для остальных примитивных типов Java.

Character

Реализует интерфейсы Comparable и Serializable.

Из конструкторов имеет только один, принимающий char в качестве параметра.

Кроме стандартных методов equals, hashCode, toString, содержит только два нестатических метода:

* public char charValue – возвращает обернутое значение char;

* public int compareTo(Character anotherCharacter) – сравнивает обернутые значения char как числа, то есть возвращает значение return this.value – anotherCharacter.value.

Также для совместимости с интерфейсом Comparable метод compareTo определен с параметром Object:

* public int compareTo(Object o) – если переданный объект имеет тип Character, результат будет аналогичен вызову compareTo((Character)o), иначе будет брошено исключение ClassCastException, так как Character можно сравнивать только с Character.

Статических методов в классе Character довольно много, но все они просты и логика их работы понятна из названия. Большинство из них - это методы, принимающие char и проверяющие всевозможные свойства. Например:

public static boolean isDigit(char c)

// проверяет, является ли char цифрой.

Эти методы возвращают значение истина или ложь, в соответствии с тем, выполнен ли критерий проверки.

Boolean

Представляет класс-обертку для примитивного типа boolean.

Реализует интерфейс java.io.Serializable и во всем напоминает аналогичные классы-обертки.

Для получения примитивного значения используется метод booleanValue.

Void

Этот класс-обертка, в отличие от остальных, не реализует интерфейс java.io.Serializable. Он не имеет открытого конструктора. Более того, экземпляр этого класса вообще не может быть получен. Он нужен только для получения ссылки на объект Class, соответствующий void. Эта ссылка представлена статической константой TYPE.

Делая краткое заключение по классам-оберткам, можно сказать, что:

* каждый примитивный тип имеет соответствующий класс-обертку ;

* все классы-обертки могут быть сконструированы как с использованием примитивных типов, так и с использованием String, за исключением Character, который может быть сконструирован только по char ;

* классы-обертки могут сравниваться с использованием метода equals ;

* примитивные типы могут быть извлечены из классов-оберток с помощью соответствующего метода xxxxValue (например intValue );

* классы-обертки также являются классами-утилитами, т.е. предоставляют набор статических методов для работы с примитивными типами;

* классы-обертки являются неизменяемыми.

Math

Класс Math состоит из набора статических методов, производящих наиболее популярные математические вычисления, и двух констант, имеющих особое значение в математике, – это число Пи и основание натурального логарифма. Часто этот класс еще называют классом-утилитой (Utility class). Так как все методы класса статические, нет необходимости создавать экземпляр данного класса, потому он и не имеет открытого конструктора. Нельзя также и наследоваться от этого класса, так как он объявлен с модификатором final.

Итак, константы определены следующим образом:

public static final double Math.PI – задает число π ("пи");

public static final double Math.E – основание натурального логарифма.

В таблице 13.2 приведены все методы класса и дано их краткое описание.

Таблица 13.2. Методы класса Math и их краткое описание.

Возвращаемое значение

Имя метода и параметры

Описание

…

abs(… a)

абсолютное значение (модуль) для типов double, float, int, long

double

acos(double a)

арккосинус

double

asin(double a)

арксинус

double

atan(double a)

арктангенс

double

ceil(double a)

наименьшее

целое число, большее a

double

floor(double a)

целое число, меньшее a

double

IEEEremainder (double a, double b)

остаток по стандарту IEEE 754 (подробно рассматривался в лекции 3)

double

sin(double a)

синус (здесь и далее: аргумент должен быть в радианах)

double

cos(double a)

косинус

double

tan(double a)

тангенс

double

exp(double a)

e в степени a

double

log(double a)

натуральный логарифм a

…

max(… a, … b)

большее из двух чисел (для типов double, float, long, int )

…

min(… a, … b)

меньшее из двух чисел (для типов double, float, long, int )

double

pow(double a, double b)

a в степени b

double

random

случайное число от 0.0 до 1.0

double

rint(double a)

значение int, ближайшее к a

…

round(… a)

значение long для double ( int для float ), ближайшее к a

double

sqrt(double a)

квадратный корень числа a

double

toDegrees(double a)

преобразование из радианов в градусы

double

toRadians(double a)

преобразование из градусов в радианы

Строки

String

Этот класс используется в Java для представления строк. Он обладает свойством неизменяемости. После того как создан экземпляр этого класса, его содержимое уже не может быть модифицировано.

Существует много способов создать объект String. Наиболее простой, если содержимое строки известно на этапе компиляции, – написать текст в кавычках:

String abc = "abc";

Можно использовать и различные варианты конструктора. Наиболее простой из них – конструктор, получающий на входе строковый литерал.

String s = new String("immutable");

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

public class Test {

public Test {

}

public static void main(String[] args) {

Test t = new Test;

String s1 = "Hello world !!!";

String s2 = "Hello world !!!";

System.out.println("String`s equally = " +

Поделиться:
Популярные книги

Я еще не царь

Дрейк Сириус
25. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я еще не царь

Магия в стиле экстрим

Веретенникова Ирина
Фантастика:
фэнтези
6.45
рейтинг книги
Магия в стиле экстрим

История испанской инквизиции. Том II

Льоренте Хуан Антонио
Научно-образовательная:
история
5.00
рейтинг книги
История испанской инквизиции. Том II

Том 12. В среде умеренности и аккуратности

Салтыков-Щедрин Михаил Евграфович
12. Собрание сочинений в двадцати томах
Проза:
русская классическая проза
6.25
рейтинг книги
Том 12. В среде умеренности и аккуратности

Статьи из "Арабесок"

Гоголь Николай Васильевич
Другие редакции
Документальная литература:
публицистика
4.75
рейтинг книги
Статьи из Арабесок

Возвращение

Измайлова Кира Алиевна
2. Случай из практики
Фантастика:
фэнтези
9.54
рейтинг книги
Возвращение

Хранители Сальвуса

Левицкая Татьяна
1. Хранители Терры
Фантастика:
фэнтези
альтернативная история
5.00
рейтинг книги
Хранители Сальвуса

Сталин против Великой Депрессии. Антикризисная политика СССР

Верхотуров Дмитрий Николаевич
Сталинский ренессанс
Научно-образовательная:
история
политика
5.00
рейтинг книги
Сталин против Великой Депрессии. Антикризисная политика СССР

Книга забвения. Том 1.

Шек Павел Александрович
Фантастика:
фэнтези
6.67
рейтинг книги
Книга забвения. Том 1.

"Фантастика 2024-68". Компиляция. Книги 1-22

Фролов Андрей
Фантастика 2024. Компиляция
Фантастика:
фэнтези
боевая фантастика
космическая фантастика
попаданцы
альтернативная история
рпг
5.00
рейтинг книги
Фантастика 2024-68. Компиляция. Книги 1-22

Лунная пыль. Рассказы

Кларк Артур Чарльз
Фантастика:
научная фантастика
8.00
рейтинг книги
Лунная пыль. Рассказы

Я до сих пор князь. Книга XXII

Дрейк Сириус
22. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор князь. Книга XXII

Газлайтер. Том 39

Володин Григорий Григорьевич
39. История Телепата
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
попаданцы
6.25
рейтинг книги
Газлайтер. Том 39

Сказка о потерянном короле

Ландышева Ксения
Фантастика:
фэнтези
6.80
рейтинг книги
Сказка о потерянном короле