-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
152 lines (108 loc) · 6.25 KB
/
Solution.java
File metadata and controls
152 lines (108 loc) · 6.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
//He who doesn't love me doesn't keep my words. The word which you hear isn't mine, but the Father's who sent me. (John 14:24)
package com.javarush.task.task14.task1414;
import java.io.*;
import java.util.*;
/*
MovieFactory
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//ввести с консоли несколько ключей (строк), пункт 7
while (true) {
String key = br.readLine();
if ("soapOpera".equals(key)) {
Movie movie = MovieFactory.getMovie(key);
System.out.println(movie.getClass().getSimpleName());
continue;}
else if ("cartoon".equals(key)) {
Movie movie = MovieFactory.getMovie(key);
System.out.println(movie.getClass().getSimpleName());
continue;}
else if ("thriller".equals(key)) {
Movie movie = MovieFactory.getMovie(key);
System.out.println(movie.getClass().getSimpleName());
continue;}
else {Movie movie = MovieFactory.getMovie(key); break;}
}
/*
8 Создать переменную movie класса Movie и для каждой введенной строки(ключа):
8.1 получить объект используя MovieFactory.getMovie и присвоить его переменной movie
8.2 вывести на экран movie.getClass().getSimpleName()
*/
}
static class MovieFactory {
static Movie getMovie(String key) {
Movie movie = null;
//создание объекта SoapOpera (мыльная опера) для ключа "soapOpera"
if ("soapOpera".equals(key)) {
movie = new SoapOpera();
}else if ("thriller".equals(key)) {
movie = new Thriller();
}else if ("cartoon".equals(key)) {
movie = new Cartoon();
}
//напишите тут ваш код, пункты 5,6
return movie;
}
}
static abstract class Movie {
}
static class SoapOpera extends Movie {
}
static class Cartoon extends Movie {//Напишите тут ваши классы, пункт 3
}
static class Thriller extends Movie {
}
}
/*
MovieFactory
Расширение функционала по аналогии, чтение с консоли:
1. Разобраться, что программа умеет делать.
2. Все классы должны быть внутри класса Solution.
3. Добавить классы Cartoon, Thriller.
4. Разобраться, как мы получаем объект класса SoapOpera по ключу «soapOpera«.
Аналогично получению объекта SoapOpera сделать:
5. Добавить в MovieFactory.getMovie получение объекта Cartoon для ключа «cartoon«.
6. Добавить в MovieFactory.getMovie получение объекта Thriller для ключа «thriller«.
7. Считать с консоли несколько ключей (строк).
7.1. Ввод заканчивается, как только вводится строка не совпадающая с одной из: «cartoon«, «thriller«, «soapOpera«.
8. Создать переменную movie класса Movie и для каждой введенной строки(ключа):
8.1. Получить объект используя MovieFactory.getMovie и присвоить его переменной movie.
8.2. Вывести на экран movie.getClass().getSimpleName().
Требования:
1. Классы Cartoon и Thriller должны быть статическими и существовать внутри класса Solution.
2. Метод MovieFactory.getMovie должен возвращать объект типа Cartoon в случае передачи ему строки "cartoon" в качестве параметра.
3. Метод MovieFactory.getMovie должен возвращать объект типа Thriller в случае передачи ему строки "thriller" в качестве параметра.
4. Метод main должен считывать строки с клавиатуры.
5. Метод main должен прекращать считывать строки с клавиатуры в случае, если была введена некорректная строка(не "cartoon", не "thriller" или не "soapOpera").
6. Для каждой введенной строки необходимо вызвать метод MovieFactory.getMovie.
7. Для всех введенных корректных строк необходимо вывести на экран простые имена(movie.getClass().getSimpleName()) типов объектов возвращаемых методом MovieFactory.getMovie.
package com.javarush.task.task14.task1414;
// *
// MovieFactory
// *
public class Solution {
public static void main(String[] args) throws Exception {
//ввести с консоли несколько ключей (строк), пункт 7
// 8 Создать переменную movie класса Movie и для каждой введенной строки(ключа):
// 8.1 получить объект используя MovieFactory.getMovie и присвоить его переменной movie
// 8.2 вывести на экран movie.getClass().getSimpleName()
}
static class MovieFactory {
static Movie getMovie(String key) {
Movie movie = null;
//создание объекта SoapOpera (мыльная опера) для ключа "soapOpera"
if ("soapOpera".equals(key)) {
movie = new SoapOpera();
}
//напишите тут ваш код, пункты 5,6
return movie;
}
}
static abstract class Movie {
}
static class SoapOpera extends Movie {
}
//Напишите тут ваши классы, пункт 3
}
*/