Иллюстрированный самоучитель по Java
Класс
Properties
Класс '
Properties
расширяет класс
Hashtabie
. Он предназначен в основном
для ввода и вывода пар свойств системы и их значений. Пары хранятся в виде строк
типа
string
. В классе
Properties
два конструктора:
Properties
() — создает пустой объект;
Properties (Properties
default)
— создает объект с
заданными парами свойств
default
.
Кроме унаследованных от класса
Hashtabie
методов в классе
Properties
есть еще
следующие методы.
Два метода, возвращающих значение
ключа-строки в виде строки:
-
string getProperty
(string key)
— возвращает значение по ключу
key
;
-
String getProperty(String.key,
String defaultValue)
— возвращает значение по ключу
key
;
если такого ключа нет, возвращается
defaultValue
.
Метод
setProperty(String
key, String value)
добавляет новую пару, если ключа
key
нет, и меняет значение, если ключ
key
есть.
Метод
load(Inputstream
in
) загружает свойства из входного потока
in
.
Методы list(PrintStream out) И list
(PrintWriter out) выводят свойства в выходной поток out.
Метод
store (OutputStream
out, String header)
выводит свойства в выходной поток
out
с заголовком
header
.
Очень простой листинг 6.4 и рис.
6.2 демонстрируют вывод всех системных свойств Java.
Листинг 6.4.
Вывод системных свойств
class Prop{
public
static void main(String[] args){
System.getProperties().list(System.out);
}
}
Примеры классов
Vector,
Stack, Hashtabie, Properties
показывают удобство классов-коллекций. Поэтому
в Java 2 разработана целая иерархия коллекций. Она показана на рис. 6.3. Курсивом
'записаны имена интерфейсов. Пунктирные линии указывают классы, реализующие
эти интерфейсы. Все коллекции разбиты; на три группы, описанные в интерфейсах
List, Set
и
Map.
Рис. 6.2.
Системные
свойства
Рис. 6.3.
Иерархия классов и интерфейсов-коллекций
Примером реализации интерфейса
List
может служить класс
Vector
, примером реализации
интерфейса мар — класс
Hashtabie
.
Коллекции
List
и
set
имеют много общего, поэтому их общие методы объединены
и вынесены в суперинтерфейс
Collection
.
Посмотрим, что, по мнению разработчиков
Java API, должно содержаться в этих коллекциях.