Advertisement
jaVer404

level14.lesson08.home03

Jun 23rd, 2015
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.73 KB | None | 0 0
  1. package com.javarush.test.level14.lesson08.home03;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.InputStreamReader;
  5.  
  6. /* User, Looser, Coder and Proger
  7. 1. Ввести [в цикле] с клавиатуры несколько строк (ключей).
  8. Строки(ключи) могут быть такими: "user", "looser", "coder", "proger".
  9. Ввод окончен, когда строка не совпадает ни с одной из выше указанных.
  10.  
  11. 2. Для каждой введенной строки нужно:
  12. 2.1. Создать соответствующий объект [см Person.java], например, для строки "user" нужно создать объект класса User.
  13. 2.2. Передать этот объект в метод doWork.
  14.  
  15. 3. Написать реализацию метода doWork, который:
  16. 3.1. Вызывает метод live() у переданного обекта, если этот объект (person) имеет тип User.
  17. 3.2. Вызывает метод doNothing(), если person имеет тип Looser.
  18. 3.3. Вызывает метод coding(), если person имеет тип Coder.
  19. 3.4. Вызывает метод enjoy(), если person имеет тип Proger.
  20. */
  21.  
  22. public class Solution
  23. {
  24.     public static void main(String[] args) throws Exception
  25.     {
  26.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  27.         Person person = null;
  28.         String key = null;
  29.  
  30.         //тут цикл по чтению ключей, пункт 1
  31.         while (true)
  32.         {
  33.             key = reader.readLine();
  34.             if (key.equals("user")||key.equals("looser")||key.equals("coder")||key.equals("proger"))
  35.  
  36.             {
  37.                 //создаем объект, пункт 2
  38.                 if (key.equals("user")) {
  39.                     person = new Person.User();
  40.                 }
  41.                 else if (key.equals("looser")) {
  42.                     person = new Person.Looser();
  43.                 }
  44.                 else if (key.equals("coder")) {
  45.                     person = new Person.Coder();
  46.                 }
  47.                 else if (key.equals("proger")) {
  48.                     person = new Person.Proger();
  49.                 }
  50.                 doWork(person); //вызываем doWork
  51.  
  52.             }
  53.             else {
  54.                 break;
  55.             }
  56.         }
  57.     }
  58.  
  59.     public static void doWork(Person person)
  60.     {
  61.         // пункт 3
  62.         if (person instanceof Person.User) {
  63.             ((Person.User) person).live();
  64.         }
  65.         if (person instanceof Person.Looser) {
  66.             ((Person.Looser) person).doNothing();
  67.         }
  68.         if (person instanceof Person.Coder) {
  69.             ((Person.Coder) person).coding();
  70.         }
  71.         if (person instanceof Person.Proger) {
  72.             ((Person.Proger) person).enjoy();
  73.         }
  74.     }
  75. }
  76. /*---------------------------------------------------------------------*/
  77. package com.javarush.test.level14.lesson08.home03;
  78.  
  79. public interface Person
  80. {
  81.     public static class User implements Person
  82.     {
  83.         void live()
  84.         {
  85.             System.out.println("Usually I just live");
  86.         }
  87.     }
  88.  
  89.     public static class Looser implements Person
  90.     {
  91.         void doNothing()
  92.         {
  93.             System.out.println("Usually I do nothing");
  94.         }
  95.     }
  96.  
  97.     public static class Coder implements Person
  98.     {
  99.         void coding()
  100.         {
  101.             System.out.println("Usually I create code");
  102.         }
  103.     }
  104.  
  105.     public static class Proger implements Person
  106.     {
  107.         void enjoy()
  108.         {
  109.             System.out.println("Wonderful life!");
  110.         }
  111.     }
  112.  
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement