Кен Арнольд Джеймс Гослинг
Вид материала | Документы |
Содержание13.6. Класс Number 13.7. Класс Integer 13.8. Класс Long 13.9. Классы Float и Double |
- Джеймс трефил, 41001.36kb.
- Джеймс А. Дискретная математика и комбинаторика [Текст] / Джеймс А. Андерсон, 42.79kb.
- Человеческая способность эти ценности производить и использовать; является важнейшей, 110.76kb.
- Джеймс блиш города в полете 1-4 триумф времени вернись домой, землянин жизнь ради звезд, 10495.38kb.
- Джеймс Н. Фрей. Как написать гениальный роман, 2872.12kb.
- Дп «авто интернешнл» Київ, вул. Урицького, 1а Тел. (044) 20-60-333 Факс. (044) 20-60-343, 82.44kb.
- Тема Кол-во страниц, 26.85kb.
- Тема Кол-во страниц, 56.3kb.
- Тема Кол-во страниц, 20.7kb.
- Арнольд И. В. Стилистика современного английского языка, 20.42kb.
13.6. Класс Number
Абстрактный класс Number расширяется всеми классами-оболочками, представляющими числовые примитивные типы: Integer, Long, Float и Double. Каждый из этих классов содержит конструкторы, которые присваивают объекту либо значение соответствующего примитивного типа, либо представляющей его строки. В том случае, если строка неверна, конструктор со строковым параметром возбуждает исключение NumberFormatException.
Абстрактные методы Number возвращают значение объекта, преобразованное в один из следующих числовых типов:
public int intValue()
public int longValue()
public int floatValue()
public int doubleValue()
Каждый класс, расширяющий Number, переопределяет эти методы для преобразования своего типа в любой другой по тем же правилам, которые применяются при явном приведении типов. Например, для объекта Float со значением 32.87 метод intValue возвращает 32 — столько же, сколько дает выражение (int)32.87.
Кроме того, каждый числовой класс содержит следующие методы и константы:
- Статический метод toString(тип), который возвращает объект String для заданного значения примитивного типа. Если строка не подходит к формату данного типа, конструктор возбуждает исключение Number FormatException.
- Статический метод valueOf(String), который возвращает объект числового типа по строке. Все эти методы возбуждают NumberFormatException, если содержимое строки не является допустимым представлением примитивного типа.
- Статические final-константы с именами MIN_VALUE и MAX_VALUE для минимального и максимального значения, принимаемого переменными типа.
13.7. Класс Integer
Класс Integer расширяет Number и служит для представления типа int в виде класса. Для типов short и byte классы-оболочки отсутствуют, поэтому соответствующие значения должны храниться в объектах Integer. Помимо стандартных методов класса Number, класс Integer содержит следующие методы:
public static int parseInt(String str, int radix)
throws NumberFormatException
Возвращает значение типа int, вычисленное по строке str в системе счисления с заданным основанием radix. Если преобразование с заданным основанием невозможно, возбуждается исключение NumberFormat Exception.
public static int parseInt(String str) throws NumberFormatException
Эквивалентен parse Int(str, 10).
public static Integer valueOf(String str, int radix) throws NumberFormatException
Аналогично parseInt(str, Radix), за исключением того, что вместо int возвращается объект Integer.
public static String toString(int i, int radix)
Дополнительный статический метод, который возвращает объект String, представляющий i в системе счисления с заданным основанием radix. Стандартный метод toString предполагает работу в десятичной системе счисления.
Кроме того, имеется три статических метода toHexString, toOctal String и toBinaryString, которые преобразуют аргумент типа int в шестнадцатеричную, восьмеричную или двоичную строку соответственно.
13.8. Класс Long
Класс Long расширяет Number и служит для представления типа long в виде класса. Помимо стандартных для Number методов, класс Long содержит следующие методы:
public static long parseLong(String str, int radix) throws NumberFormatException
Возвращает значение типа long, вычисленное по строке str в системе счисления с заданным основанием radix. Если строка не может быть преобразована в long с заданным основанием, возбуждается исключение NumberFormatException.
public static long parseLong(String str) throws NumberFormatException
Эквивалентен parseLong(str, 10).
public static Long valueOf(String str, int radix) throws NumberFormatException
Аналогично parseLong(str, radix), за исключением того, что вместо long возвращается объект Long.
public static String toString(long l, int radix)
Дополнительный статический метод, который возвращает объект String, представляющий l в системе счисления с заданным основанием radix. Стандартный метод toString предполагает работу в десятичной системе счисления.
По аналогии с эквивалентными методами Integer, статические методы toHexString, toOctalString и toBinaryString преобразуют аргумент типа long в шестнадцатеричную, восьмеричную или двоичную строку соответственно.
13.9. Классы Float и Double
Классы Float и Double расширяют Number и служат для представления типов float и double в виде класса. За редкими исключениями, имена методов и константы совпадают для обоих типов. Приведенный ниже список соответствует классу Float, однако float и Float всюду могут быть заменены на double и Double соответственно, что даст эквивалентные поля и методы для класса Double. Помимо стандартных методов класса Number, классы Float и Double содержат следующие методы:
public final static float POSITIVE_INFINITY
Значение для +.
public final static float NEGATIVE_INFINITY
Значение для –.
public final static float NaN
“Не-число” (“Not-a-Number”, NaN). Константа предназначена для задания значения NaN, но не для его проверки. Чтобы узнать, является ли число NaN, следует воспользоваться методом isNaN, а не сравнением с этой константой.
public static boolean isNaN(float val)
Возвращает true, если val представляет собой не-число (NaN).
public static boolean isInfinite(float val)
Возвращает true, если val представляет собой положительную или отрицательную бесконечность.
public boolean isNaN()
Возвращает true, если значение текущего объекта представляет собой не-число (NaN).
public boolean isInfinite()
Возвращает true, если значение текущего объекта представляет собой положительную или отрицательную бесконечность.
Кроме перечисленных выше методов, Float также содержит конструктор, который получает аргумент типа double. Этот аргумент используется в качестве исходного значения после его приведения к float.
Для манипуляций с битами внутри представления числа с плавающей точкой Double содержит методы для получения битовой последовательности типа long и для ее обратного приведения к типу double. Класс Float содержит эквивалентные методы для преобразования значения типа float в битовую последовательность типа int и наоборот:
public static int floatToIntBits(float value)
Возвращает битовое представление значения float в виде int.
public static float intBitsToFloat(int Bits)
Возвращает значение float, соответствующее заданному битовому представлению.
public static int doubleToLongBits(double value)
Возвращает битовое представление значения double в виде long.
public static double longBitsToDouble(long Bits)
Возвращает значение double, соответствующее заданному битовому представлению.
Упражнение 13.3
Напишите программу, которая читает файл, состоящий из элементов вида “тип значение”, где тип — название одного из классов (Boolean, Character и т. д.), а значение — строка, которую может воспринимать конструктор заданного типа. Для каждого элемента файла создайте объект нужного типа с указанным значением и добавьте его к вектору Vector. Выведите окончательный результат.