Глава 10. Классы Java

В этой главе Вы узнаете следующее:

·  Введение в JavaDoc

·  Использование классов-оболочек

·  Использование класса String

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

Введение в JavaDoc

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

Такое формирование документации очень удобно, поэтому Вы можете также документировать и Ваши классы. Давайте посмотрим, как выглядит результат работы JavaDoc ( см. рис. 10.1). Можно получить показанный на рисунке экран, обратившись по адресу http:///j2se/1.5.0/docs/api/index. html. Вы можете выгрузить и установить указанную документацию. Выгрузка может быть выполнена по адресу http:///j2se/1.5.0/download. jsp. Документация выгружается в виде архива, его надо разархивировать по адресу javaHome/docs. Тогда получить такой экран можно и на Вашей машине, открыв в браузере страницу javaHome/docs/index. html, где javaHome – каталог, куда был установлен JSDK.

НЕ нашли? Не то? Что вы ищете?
Рис. 10.1. Документация, сгенерированная JavaDoc

На рис. 10.1 показана страница, которая выдается при запуске документации, сгенерированной программой JavaDoc. В верхнем левом углу показаны все пакеты, из которых можно выбирать нужные Вам классы. Java позволяет группировать родственные классы в пакеты для более удобной организации и из соображений защиты информации. В нижнем левом углу показаны все классы, доступные пользователю. Справа перечислены особенности всех пакетов, поставляемых вместе с Sun SDK. Когда Вы щелкаете на имени пакета, Вы увидите описание классов в данном пакете, если же Вы выберете класс, то Вы увидите описание класса, его поля и методы с подробным описанием каждого. Вся документация идет на английском языке, я думаю, что для программистов владение английским языком на уровне понимания технической документации просто необходимо.

Для того, чтобы добавить информацию для программы JavaDoc в свои классы, Вы должны использовать комментарии следующего вида:

/**

* This is the description part of a doc comment

*

* @tag Comment for the tag

*/

Комментарий начинается с косой черты с наклоном вправо и двух звездочек, а заканчивается звездочкой и одной чертой. Помещаются эти комментарии перед описанием класса для обеспечения документации на класс ( описания его назначения, функциональности и т. д.), или перед описанием метода. Также комментарии могут помещаться перед определениями public полей и констант класса.

JavaDoc определяет набор тегов, которые имеют определенное значение (см. Табл. 10.1).

Табл. 10.1.Определения тегов JavaDoc

Тег

Описание

@author

Определяет автора класса или интерфейса ( рекомендуется )

@version

Определяет версию класса или интерфейса ( рекомендуется )

@param

Для каждого параметра метода указывается отдельный тег. Используется для методов и конструкторов

@return

Описывает значение, возвращаемое методом

@exception

Один тег для каждого исключения, выбрасываемого методом (@throws может использоваться в JavaDoc 1.2)

@see

Ссылка на другой класс или метод

@since

Определяет версию API, с которой этот метод или класс можно использовать

@serial

Описывает сохраняемые поля в этом методе (или @serialField или @serialData)

@deprecated

Отмечает, что метод нежелательно использовать по разным причинам

Например:

/**

* Doubles an integer

*

* @param i The integer to double

* @return An integer containing the doubled value

*/

public int double( int i ) {

return 2*i;

}

Полную документацию по использованию JavaDoc можно получить по адресу:

http:///javadoc

Использование классов-оболочек Java

Как Вы уже слышали, все классы наследуют от класса java. lang. Object. Это утверждение верно для всех классов Java, кроме примитивных типов данных: int, boolean, float, double и т. д. Для примитивных типов данных в Java используются классы-оболочки. Есть, например, класс Integer, который поддерживает int, класс Boolean, который поддерживает boolean, класс Float для поддержки float. Классы – оболочки очень важны при передаче объектов в распределенных системах, некоторой обработке данных. Например, примитивные типы не могут поддерживать како-то интерфейс, а при сохранении и восстановлении данных должен поддерживаться интерфейс Serializable. Но, создав класс-оболочку для примитивного типа, мы можем в нем реализовать этот интерфейс.

Классы-оболочки имеют очень специфические характеристики. Например, значения примитивных типов, связанные с объектами этих классов, не могут изменяться. Если же Вы захотите изменить значение, то Вы должны сначала извлечь значение, изменить его, а заетем создать новый объект класса-оболочки. Например:

// Create a new Integer

int n = 5;

Integer myInteger = new Integer( n );

// Increment n

int a = myInteger. intValue();

myInteger = new Integer( ++a ); .

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

Хотя классы-оболочки непосредственно наследуют от класса Оbject, и нет разделяемого общего базового класса, имеется образец, по которому строятся такие классы:

·  xxxValue— Метод возвращает значение примитивного типа

·  getXXX— Метод читает значение String, передаваемое как параметр, и преобразует его в соответствующий примитивный тип

·  valueOf— Метод преобразует String в объект-оболочку

Все классы-оболочки имеют два конструктора: один для создания объекта из примитивного типа, а другой – для создания объекта из строки String.

Класс Boolean

Этот класс – оболочка для примитивного типа boolean. Конструкторы класса показаны в табл. 10.2.

Табл. 10.2. Конструкторы класса Boolean

Конструктор

Описание

Boolean(boolean value)

Создает объект Boolean для значения value.

Boolean(String s)

Создает объект Boolean со значением true, если аргумент ненулевая ссылка на строку true, не учитывая регистр букв, false, если аргумент ненулевая ссылка на строку false

Табл. 10.3 показывает некоторые полезные методы класса Boolean.

Табл. 10.3. Методы класса Boolean

Метод

Описание

boolean booleanValue()

Возвращает значение примитивного типа boolean.

boolean equals(Object obj)

Возвращает true, если аргумент не равен null, и является объектом класса Boolean с тем же значением, что и объект, для которого метод вызывается.

static boolean getBoolean(String name)

Возвращает true, если системное свойство с именем name существует и равно строке true.

String toString()

Возвращает объект String, представляющий значение Boolean

static Boolean valueOf(String s)

Возвращает Boolean со значением, указанным в String s.

Класс Boolean обеспечивает такжн методы booleanValue(), getBoolean()и valueOf()) для работы с типами Boolean. Кроме того, в него входят методы для преобразования Boolean в String и сравнения Boolean на равенство.

Класс Byte

Класс Byte – оболочка для примитивного типа byte. Конструкторы приведены в табл. 10.4.

Табл. 10.4.Конструкторы класса Byte

Конструктор

Описание

Byte(byte value)

Конструирует объект Byte и инициализирует его значением byte value.

Byte(String s)

Конструирует объект Byte и инициализирует его значением, указанным параметром String.

Как видно из табл. 10.4, объект типа Byte можно создать либо из переменной типа byte либо из строки, содержащей десятичное значение (с основанием системы счисления 10).

Табл. 10.5 показывает некоторые методы класса Byte.

Табл. 10.5. Методы класса Byte

Метод

Описание

byte byteValue()

Возвращает значение данного объекта Byte как byte.

int compareTo(Byte anotherByte)

Сравнивает два Byte между собой по численным значениям.

int compareTo(Object o)

Сравнивает Byte с другим Object.

static Byte decode(String nm)

Декодирует строку String в Byte.

double doubleValue()

Возвращает значение Byte как double.

boolean equals(Object obj)

Выполняет сравнение двух объектов типа Byte.

float floatValue()

Возвращает значение Byte как float.

int intValue()

Возвращает значение Byte как int.

long longValue()

Возвращает значение Byte как long.

static byte parseByte(String s)

Предполагая, что указанная строка s представляет byte, возвращает значение в виде byte.

static byte parseByte(String s, int radix)

Предполагая, что указанная строка s представляет byte, возвращает значение в виде byte, но в системе с основанием radix.

short shortValue()

Возвращает значение Byte как short.

String toString()

Возвращает строковое представление объекта Byte.

static String toString(byte b)

Возвращает новую строку String, представляющую указанный byte.

static Byte valueOf(String s)

Создает новый объект Byte и инициализирует его значением из строки s.

static Byte valueOf(String s, int radix)

Создает новый объект Byte и инициализирует его значением из строки s, предполагая, что она содержит численное значение с основанием системы счисления radix.

Класс Byte обеспечивает методы для преобразования байтов в short, int, long, double, а также ряд методов для преобразования строки в байт, причем с учетом системы счисления (например, десятичная - 10, шестнадцатиричная – 16). Есть в классе методы для сравнения двух объектов.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5