-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathHouse.java
More file actions
109 lines (75 loc) · 3.34 KB
/
House.java
File metadata and controls
109 lines (75 loc) · 3.34 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
//And they had hair as the hair of women, and their teeth were as the teeth of lions. (Revelation 9:8)
package com.javarush.task.task35.task3510;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/*
Вход воспрещен!
*/
public class House<T> {
private List<T> residents = new ArrayList();
public void enter(T resident) {
residents.add(resident);
// checkConflicts();
}
public void leave(T resident) {
residents.remove(resident);
}
/*private void checkConflicts() {
boolean conflict = false;
for (Object resident : residents) {
if (resident instanceof Dog) {
conflict = true;
}
}
if (conflict) {
Iterator iterator = residents.iterator();
while (iterator.hasNext()) {
Object resident = iterator.next();
if (resident instanceof Cat) {
iterator.remove();
}
}
}
}*/
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("В доме находятся:\n");
for (Object resident : residents) {
builder.append(resident.toString()).append("\n");
}
return builder.toString();
}
public static void main(String[] args) {
Dog bruno = new Dog("Bruno");
Puppy larsik = new Puppy("Larsik");
Cat barsik = new Cat("Barsik");
Kitten keksik = new Kitten("Keksik");
House dogHouse = new House();
dogHouse.enter(bruno);
dogHouse.enter(larsik);
dogHouse.enter(barsik);
System.out.println(dogHouse.toString());
House catHouse = new House();
catHouse.enter(barsik);
catHouse.enter(keksik);
catHouse.enter(bruno);
System.out.println(catHouse.toString());
}
}
/*
Вход воспрещен!
Проанализируй классы в задаче.
В методе main создано два дома: один для котов и один для собак.
Однако сейчас, когда в дом для кошек заходит собака, возникает конфликт и все находящиеся в нем коты вынуждены покинуть дом (метод checkConflicts).
Помоги котам защитить свой дом от посторонних, а так же не позволить им случайно заходить в дом для собак.
Для этого параметризируй House типом T и внеси соответствующие правки в реализацию класса.
Метод main не принимает участие в тестировании.
Требования:
1. Класс House должен быть параметризован с типом T.
2. Поле residents в классе House должно быть параметризовано типом T.
3. Метод enter в классе House должен принимать объект типа T.
4. Метод leave в классе House должен принимать объект типа T.
5. Метод checkConflicts в классе House больше не нужен и должен быть удален.
*/