Шрифт:
Оба метода могут возбуждать исключение NumberFormatException, если строка, переданная на вход, содержит нецифровые символы.
Не следует путать эти методы с другой парой похожих методов:
public static Integer valueOf(String s)
public static Integer valueOf(String s, int radix)
Данные методы выполняют аналогичную работу, только результат представляют в виде объекта-обертки.
Существует также два конструктора для создания экземпляров класса Integer:
* Integer(String s) – конструктор, принимающий в качестве параметра строку, представляющую числовое значение.
* Integer(int i) – конструктор, принимающий числовое значение.
public static String toString(int i) – используется для преобразования значения типа int в строку.
Далее перечислены методы, преобразующие int в строковое восьмеричное, двоичное и шестнадцатеричное представление:
* public static String toOctalString(int i) – восьмеричное;
* public static String toBinaryString(int i) – двоичное;
* public static String toHexString(int i) – шестнадцатеричное.
Имеется также две статические константы:
* Integer.MIN_VALUE – минимальное int значение;
* Integer.MAX_VALUE – максимальное int значение.
Аналогичные константы, описывающие границы соответствующих типов, определены и для всех остальных классов-оберток числовых примитивных типов.
public int intValue возвращает значение примитивного типа для данного объекта Integer. Классы-обертки остальных примитивных целочисленных типов – Byte, Short, Long – содержат аналогичные методы и константы (определенные для соответствующих типов: byte, short, long ).
Рассмотрим пример:
public static void main(String[] args) {
int i = 1;
byte b = 1;
String value = "1000";
Integer iObj = new Integer(i);
Byte bObj = new Byte(b);
System.out.println("while i==b is " +
(i==b));
System.out.println("iObj.equals(bObj) is "
+ iObj.equals(bObj));
Long lObj = new Long(value);
System.out.println("lObj = " +
lObj.toString);
Long sum = new Long(lObj.longValue +
iObj.byteValue +
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 и проверяющие всевозможные свойства. Например: