Как вы убедились из приведенных примеров, настраиваемые типы и методы допускают сложную структуру параметров, так же как и вложенные классы. Мы еще не касались вопросов наследования настраиваемых типов, реализации настраиваемых интерфейсов, создания массивов настраиваемых типов. Все эти вопросы подробно рассмотрены на сайте Анжелики Лангер (Angelika Langer), в ее Java Generics FAQ, http:// www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html.

<p><strong>Класс <emphasis>Boolean</emphasis></strong></p>

Это очень небольшой класс, предназначенный главным образом для того, чтобы передавать логические значения в методы по ссылке.

Конструктор Boolean (String s) создает объект, содержащий значение true, если строка s равна "true" в произвольном сочетании регистров букв, и значение false — для любой другой строки.

Статический метод valueOf(boolean b) позволяет получить объект класса Boolean из значения примитивного типа boolean.

Пользуясь автоматической упаковкой, можно определение

Boolean b = new Boolean("true");

или

Boolean b = Boolean.valueOf(true);

сократить до

Boolean b = true;

Метод booleanValue () возвращает логическое значение, хранящееся в объекте.

Статический метод parseBoolean(String s) возвращает значение true, если строка s равна "true" в произвольном сочетании регистров букв, и значение false — для любой другой строки.

<p><strong>Класс <emphasis>Character</emphasis></strong></p>

В этом классе собраны статические константы и методы для работы с отдельными символами.

Статический метод

digit(char ch, in radix);

переводит цифру ch системы счисления с основанием radix в ее числовое значение типа

int.

Статический метод

forDigit(int digit, int radix);

выполняет обратное преобразование целого числа digit в соответствующую цифру (тип char) в системе счисления с основанием radix.

Основание системы счисления должно находиться в диапазоне от Character.MIN_RADIX до Character.MAX RADIX.

Метод toString () переводит символ, содержащийся в классе, в строку с тем же символом.

Статические методы toLowerCase(), toUpperCase(), toTitleCase() возвращают символ, содержащийся в классе, в указанном регистре. Последний из этих методов предназначен для правильного перевода в верхний регистр четырех кодов Unicode, не выражающихся одним символом.

Статический метод

getName(int code);

возвращает полное Unicode-имя символа по его коду code.

Множество статических логических методов проверяют различные характеристики символа, переданного в качестве аргумента метода:

□ isDefined () — выясняет, определен ли символ в кодировке Unicode;

□ isDigit () — проверяет, является ли символ цифрой Unicode;

□ isIdentifierIgnorable () — выясняет, нельзя ли использовать символ в идентификаторах;

□ isISOControl () — определяет, является ли символ управляющим;

□ isBmpCodePoint () — определяет, лежит ли код символа в диапазоне \u0000-\uFFFF;

□ isSupplementaryCodePoint () — определяет, что код символа больше \uFFFF;

□ isJavaIdentifierPart ( ) - выясняет, можно ли использовать символ в идентифика

торах;

□ isJavaIdentifierStart () — определяет, может ли символ начинать идентификатор;□ isLetter () — проверяет, является ли символ буквой Java;□ isLetterOrDigit () — проверяет, является ли символ буквой или цифрой Unicode;□ isLowerCase () — определяет, записан ли символ в нижнем регистре;□ isSpaceChar () — выясняет, является ли символ пробелом в смысле Unicode;□ isTitleCase () — проверяет, является ли символ титульным;□ isUnicodeIdentifierPart ( ) - выясняет, можно ли использовать символ в именахUnicode;□ isUnicodeIdentifierStart () — проверяет, является ли символ буквой Unicode;□ isUpperCase () — проверяет, записан ли символ в верхнем регистре;□ isWhitespace () — выясняет, является ли символ пробельным.Точные диапазоны управляющих символов, понятия верхнего и нижнего регистра, титульного символа, пробельных символов лучше всего посмотреть в документации Java API.Листинг 4.5 демонстрирует использование этих методов, а на рис. 4.3 показан вывод этой программы.

Листинг 4.5. Методы класса Character в программе CharacterTest

class CharacterTest{

public static void main(String[] args){

char ch = ’9’;

Character cl = Character.valueOf(ch);

System.out.println("ch = " + ch);

System.out.println("c1.charValue() = " + cl.charValue());

System.out.println("number of ’A’ = " + Character.digit('A', 16));

System.out.println("digit for 12 = " +

Character.forDigit(12, 16));

System.out.println("c1 = " + c1.toString());

System.out.println("ch isDefined? " +

Character.isDefined(ch));

System.out.println("ch isDigit? " +

Character.isDigit(ch));

System.out.println("ch isIdentifierIgnorable? " + Character.isIdentifierIgnorable(ch));

System.out.println("ch isISOControl? " + Character.isISOControl(ch));

System.out.println("ch isJavaIdentifierPart? " + Character.isJavaIdentifierPart(ch));

System.out.println("ch isJavaIdentifierStart? " + Character.isJavaIdentifierStart(ch)) ;

System.out.println("ch isLetter? " + Character.isLetter(ch));

System.out.println("ch isLetterOrDigit? " + Character.isLetterOrDigit(ch));

Перейти на страницу:

Все книги серии В подлиннике

Похожие книги