Главная Контакты


  На сайте

  Java, JavaScript
  Документация Perl
  Документация PHP
  Документация ASP
  Новости сайта
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C
 


Java-приложение: заглянем внутрь


Так же как и предыдущие классы, Debug не допускает создания своих экземпляров оператором new, и все его методы описаны как static, чтобы их нельзя было употреблять в отрыве от имени класса (см. Листинг 5).

Листинг 5. Создание класса Debug
package Mitrich.utils; /** * Данный класс играет роль флага разрешения * или запрещения мониторинга */ public final class Debug { /** * По умолчанию трассировка выключена */ private static boolean onFlag = false; /** * Не дает создать экземпляр класса */ private Debug() { } /** * Возвращает состояние флага мониторинга * @return boolean */ public static boolean isOn() { return Debug.onFlag; } /** * Сбрасывает флаг состояния мониторинга */ public static void off() { Debug.onFlag = false; } /** * Устанавливает флаг состояния мониторинга */ public static void on() { Debug.onFlag = true; } }

И вот мы вплотную подошли к основному классу нашей маленькой библиотеки, который, собственно, и выполняет мониторинг. Два его метода - err() и out() - пересылают данные соответственно в поток ошибок и поток вывода. Но, как показывает исходный текст (см. Листинг 6), эти операторы перегружены, благодаря чему они могут выводить в поток данные любого типа.

Листинг 6. Создание основного класса, выполняющего мониторинг
package Mitrich.utils; import java.io.PrintStream; /** * Данный класс сделан для удобства мониторинга данных. */ public final class TraceTo { static StdStreams streams = new StdStreams(); /** * Предотвращает создание экземпляров класса */ private TraceTo() { } /** * Выводит данные параметра value в поток ошибок * @param value char[] */ public static void err(char[] value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value byte */ public static void err(byte value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value char */ public static void err(char value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value double */ public static void err(double value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value float */ public static void err(float value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value int */ public static void err(int value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value long */ public static void err(long value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param msg java.lang.Object */ public static void err(Object value) { if(Debug.isOn()) streams.getErr().println(value.toString()); } /** * Выводит данные параметра value в поток ошибок * @param msg java.lang.String */ public static void err(String value) { if(Debug.isOn()) streams.getErr().print(value); } /** * Выводит данные параметра value в поток ошибок * @param value short */ public static void err(short value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value boolean */ public static void err(boolean value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value char[] */ public static void out(char[] value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value byte */ public static void out(byte value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value char */ public static void out(char value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value double */ public static void out(double value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value float */ public static void out(float value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value int */ public static void out(int value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value long */ public static void out(long value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param msg java.lang.Object */ public static void out(Object value) { if(Debug.isOn()) streams.getOut().println(value.toString()); } /** * Пересылает данные параметра value в поток вывода * @param msg java.lang.String */ public static void out (String value) { if(Debug.isOn()) streams.getOut().print(value); } /** * Пересылает данные параметра value в поток вывода * @param value short */ public static void out(short value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value boolean */ public static void out(boolean value) { if(Debug.isOn()) streams.getOut().println(value); } }

Другие статьи по теме:

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


Голосование:
Чего Вы хотели бы видеть больше на сайте?

Статей, документации
Скриптов
Программ для вебмастера
Я не знаю



Другие голосования

Обмен кнопочками:



Приглашаем Вас обменяться кнопочками! Обращайтесь к администратору.


Новые статьи:


Наши партнеры:





2006-2024 © SMTI.RU
Главная страница | Связаться с нами