Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
ПРИМЕР 1. Создание справочного классаСтр 1 из 7Следующая ⇒
В качестве упражнения для приобретения нужных навыков работы с классами в этом проекте вам предстоит преобразовать в класс 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); } } } Запустив эту программу на выполнение, вы увидите, что она ведет себя точно так же, как и предыдущая ее версия. Преимущество текущей ее версии заключается лишь в том, что теперь справочная система может быть использована повторно всякий раз, когда в этом возникнет потребность.
|