русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Public static class


Дата добавления: 2015-06-12; просмотров: 576; Нарушение авторских прав


Double implements Generator<java.lang.Double> {

private double value = 0.0;

public java.lang.Double next() {

double result = value;

value += 1.0;

return result;

}

}

}

Каждый класс реализует некоторое понятие «счетности». В случае CountingGenerator.Character это повторение символов верхнего и нижнего регистра. Класс CountingGenerator.String использует CountingGenerator.Character для заполнения массива символов, который затем преобразуется в String. Размер массива определяется аргументом конструктора. Обратите внимание на то, что CountingGenerator.String использует базовую конструкцию Generator<java.lang.Character> вместо конкретной ссылки на CountingGenerator.Character.

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

//: arrays/GeneratorsTest.java

import net.mindview.util.*;

 

public class GeneratorsTest {

public static int size = 10;

public static void test(Class<?> surroundingClass) {

for(Class<?> type : surroundingClass.getClasses()) {

System.out.print(type.getSimpleName() + ": ");

try {

Generator<?> g = (Generator<?>)type.newInstance();

for(int i = 0; i < size; i++)

System.out.printf(g.next() + " ");

System.out.println();

} catch(Exception e) {

throw new RuntimeException(e);

}

}

}

public static void main(String[] args) {

test(CountingGenerator.class);

}

}

<spoiler text="Output:">

Double: 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0

Float: 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0

Long: 0 1 2 3 4 5 6 7 8 9

Integer: 0 1 2 3 4 5 6 7 8 9

Short: 0 1 2 3 4 5 6 7 8 9

String: abcdefg hijklmn opqrstu vwxyzAB CDEFGHI JKLMNOP QRSTUVW XYZabcd efghijk lmnopqr



Character: a b c d e f g h i j

Byte: 0 1 2 3 4 5 6 7 8 9

Boolean: true false true false true false true false true false

</spoiler> Предполагается, что тестируемый класс содержит серию вложенных объектов Generator, каждый из которых имеет конструктор по умолчанию (то есть без аргументов). Рефлексионный метод getClasses() выдает информацию обо всех вложенных классах. Далее метод test() создает экземпляр каждого генератора и выводит результаты, полученные при десятикратном вызове next(). Следующий набор генераторов основан на случайных числах. Так как конструктор Random инициализируется константой, результаты будут повторяться при каждом запуске программы:

//: net/mindview/util/RandomGenerator.java

// Генераторы, выдающие случайные значения.

package net.mindview.util;

import java.util.*;

 

public class RandomGenerator {

private static Random r = new Random(47);



<== предыдущая лекция | следующая лекция ==>
Public static class | Public static class


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.283 сек.