Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






ПРИМЕР 1. Создание справочного класса






В качестве упражнения для приобретения нужных навыков работы с классами в этом проекте вам предстоит преобразовать в класс Help справочную систему, созданную в лабораторной работе №1. Но прежде рассмотрим, какие для этого имеются основания. Во-первых, справочная система представляет собой один логический блок. Эта система лишь отображает синтаксис управляющих операторов Java. Ее функциональные возможности четко определены. Во-вторых, реализация справочной системы в виде класса представляет собой довольно изящное решение. Всякий раз, когда требуется отобразить подсказку для пользователя, достаточно создать экземпляр объекта справочной системы. И наконец, справочную информацию можно дополнить или изменить, не затрагивая остальные части программы, поскольку она инкапсулирована в классе.

Последовательность действий

1. Создайте новый файл HelpClassDemo.java. Ради экономии времени и труда на ввод исходного текста скопируйте файл Не1рЗ.java, созданный вами во время лабораторной работы №1 и сохраните его под именем HelpClassDemo.java.

2. Для того чтобы преобразовать справочную систему в класс, нужно сначала четко определить ее составные части. Так, в исходном файле Не1рЗ.java программы, реализующей справочную систему, имеется код, отвечающий за отображение меню, получение информации от пользователя, проверку достоверности ответа и отображение данных, соответствующих выбранному пункту меню. В этой программе имеется также цикл, который завершается при вводе символа q. По зрелом размышлении становится ясно, что средства организации меню, проверки достоверности ответа и отображения информации являются составными частями справочной системы. В то же время порядок получения данных от пользователя и обработки многократных запросов не имеет к системе непосредственного отношения. Таким образом, нужно создать класс, который отображает справочную информацию, меню для ее выбора и проверяет правильность сделанного выбора. Соответствующие методы класса можно назвать helpon(), showmenu() и isvalid().

3. Создайте метод helpon (), исходный код которого приведен ниже.

void helpon(int what) {

switch(what) {

case '1':

System, out.printIn(" The if: \n");

System.out.println(" if(condition) statement; ");

System.out.printIn(" else statement; ");

break;

case ' 2 ':

System.out.println(" The switch: \n");

System.out.println(" switch(expression) {");

System.out.println(" case constant: ");

System.out.println(" statement sequence");

System.out.println(" break; ");

System.out.println(" //...");

System.out.println(" }");

break;

case ' 3 ':

System.out.println(" The for: \n");

System.out.print(" for(init; condition; iteration)");

System.out.println(" statement; ");

break;

case '4':

System.out.println(" The while: \n");

System.out.println(" while(condition) statement; ");

break;

case '5':

System.out.println(" The do-while: \n");

System.out.println(" do {");

System.out.println(" statement; ");

System.out.println(" } while (condition); ");

break;

case '6':

System.out.println(" The break: \n");

System.out.println(" break; or break label; ");

break;

case '7':

System, out. println (" The continu^': \n");

System.out.println(" continue; or continue label; ");

break;

}

System.out.println();

}

4. Далее создайте метод showmenu (), исходный код которого приведен ниже.

void showmenu() {

System.out.println(" Help on: ");

System.out.println(" 1. if");

System.out.println(" 2. switch");

System.out.println(" 3. for");

System.out.println(" 4. while");

System.out.println(" 5. do-while");

System.out.println(" 6. break");

System.out.println(" 7. continue\n");

System.out.print(" Choose one (q to quit): ");

}

5. И наконец, создайте метод isvalid(), исходный код которого приведен ниже.

boolean isvalid(int ch) {

if(ch < '1' I ch > '7' & ch! = 'q') return false;

e lse return true;

}

6. Добавьте созданные выше методы в класс Help, как показано ниже.

class Help {

void helpon(int what) {

}

void showmenu() {

}

boolean isvalid(int ch) {

}

}

7. Перепишите метод main () из примера №7 лабораторной работы №1 таким образом, чтобы использовать в нем новый класс Help. Сохраните новый исходный код в файле HelpClassDemo.java. Ниже приведен весь исходный код программы, реализующей справочную систему в файле HelpClassDemo.java.

/*

Преобразование в класс Help справочной системы

*/

class Help {

void helpon(int what) {

switch(what) {

case '1':

System.out.println(" The if: \n");

System.out.println(" if(condition) statement; ");

System.out.println(" else statement; ");

break;

case ' 2 ':

System.out.println(" The switch: \n");

System.out.println(" switch(expression) {");

System.out.println(" case constant: ");

System.out.println(" statement sequence");

System.out.println(" break; ");

System.out.println (" //...");,

System.out.println(" }");

break;

case '3 ':

System.out.println(" The for: \n");

System.out.print(" for(init; condition; iteration)");

System.out.println(" statement; ");

break;

case '4 ':

System.out.println(" The while: \n");

System.out.println(" while(condition) statement; ");

break;

case '5 ':

System.out.println(" The do-while: \n");

System.out.println(" do {");

System.out.println(" statement; ");

System.out.println(" } while (condition); ");

break;

case '6':

System.out.println(" The break: \n");

System.out.println(" break; or break label; ");

break;

case '7':

System.out.println(" The continue: \n");

System.out.println(" continue; or continue label; ");

break;

}

System.out.println();

}

void showmenu() {

System.out.println(" Help on: ");

System.out.println(" 1. if");

System.out.println(" 2. switch");

System.out.println! " 3. for");

System.out.println(" 4. while");

System.out.println(" 5. do-while");

System.out.println(" 6. break");

System.out.println(" 7. continue\n");

System.out.print(" Choose one (q to quit): ");

}

boolean isvalid(int ch) {

if(ch < '1' I ch > '7' & ch! = 'q') return false;

else return true;

}

}

class HelpClassDemo {

public static void main(String args[])

throws java.io.lOException {

char choice, ignore;

Help hlpobj = new HelpO;

for(;;) {

do {

hlpobj.showmenu();

choice = (char) System.in.read();

do {

ignore = (char) System.in.read();

} while(ignore! = '\n');

} while(! hlpobj.isvalid(choice));

if(choice == 'q') break;

System.out.println(" \n");

hlpobj.helpon(choice);

}

}

}

Запустив эту программу на выполнение, вы увидите, что она ведет себя точно так же, как и предыдущая ее версия. Преимущество текущей ее версии заключается лишь в том, что теперь справочная система может быть использована повторно всякий раз, когда в этом возникнет потребность.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.