Skip to content

Commit 7fc9bd4

Browse files
committed
Добавлены классы Bird, BroodHen, Cuckoo и интерфейс HatchingChicks
1 parent 5d099e9 commit 7fc9bd4

6 files changed

Lines changed: 192 additions & 0 deletions

File tree

src/apps/birds/Bird.java

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package apps.birds;
2+
3+
public abstract class Bird
4+
{
5+
protected String name;
6+
7+
public Bird(String name)
8+
{
9+
this.name = name;
10+
}
11+
12+
public abstract void fly();
13+
14+
public abstract void sing();
15+
16+
public abstract void layEggs();
17+
18+
public final void setName(String name)
19+
{
20+
this.name = name;
21+
}
22+
23+
public final String getName()
24+
{
25+
return name;
26+
}
27+
28+
@Override
29+
public final boolean equals(Object o)
30+
{
31+
if (this == o)
32+
{
33+
return true;
34+
}
35+
if (o == null || getClass() != o.getClass())
36+
{
37+
return false;
38+
}
39+
40+
Bird bird = (Bird) o;
41+
42+
return name.equals(bird.name);
43+
}
44+
45+
@Override
46+
public int hashCode()
47+
{
48+
return name.hashCode();
49+
}
50+
51+
@Override
52+
public final String toString()
53+
{
54+
return name;
55+
}
56+
}

src/apps/birds/BroodHen.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package apps.birds;
2+
3+
public class BroodHen extends Bird implements HatchingChicks
4+
{
5+
public BroodHen()
6+
{
7+
super("Наседка");
8+
}
9+
10+
@Override
11+
public void fly()
12+
{
13+
System.out.println("Курица летит на небольшое расстояние");
14+
}
15+
16+
@Override
17+
public void sing()
18+
{
19+
System.out.println("Кудахчет");
20+
}
21+
22+
@Override
23+
public void layEggs()
24+
{
25+
System.out.println("Курица снесла яйца");
26+
}
27+
28+
@Override
29+
public void hatchingChicks()
30+
{
31+
System.out.println("Курица высиживает яйца");
32+
}
33+
}

src/apps/birds/Cuckoo.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package apps.birds;
2+
3+
class Cuckoo extends Bird
4+
{
5+
public Cuckoo()
6+
{
7+
super("Кукушка");
8+
}
9+
10+
@Override
11+
public void fly()
12+
{
13+
System.out.println("Кукушка летит");
14+
}
15+
16+
@Override
17+
public void sing()
18+
{
19+
System.out.println("Ку-ку");
20+
}
21+
22+
@Override
23+
public void layEggs()
24+
{
25+
System.out.println("Кукушка подбросила яйца другой птице");
26+
}
27+
}

src/apps/birds/HatchingChicks.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package apps.birds;
2+
3+
public interface HatchingChicks
4+
{
5+
void hatchingChicks();
6+
}

src/apps/files/Directory.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,34 @@ public String toString()
4949
{
5050
return path.isEmpty() ? name : path + '\\' + name;
5151
}
52+
53+
@Override
54+
public boolean equals(Object o)
55+
{
56+
if (this == o)
57+
{
58+
return true;
59+
}
60+
if (o == null || getClass() != o.getClass())
61+
{
62+
return false;
63+
}
64+
65+
Directory directory = (Directory) o;
66+
67+
if (!path.equals(directory.path))
68+
{
69+
return false;
70+
}
71+
72+
return name.equals(directory.name);
73+
}
74+
75+
@Override
76+
public int hashCode()
77+
{
78+
int result = path.hashCode();
79+
result = 31 * result + name.hashCode();
80+
return result;
81+
}
5282
}

src/apps/files/File.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,44 @@ public boolean delete()
9999
}
100100

101101
public abstract String toString();
102+
103+
@Override
104+
public boolean equals(Object o)
105+
{
106+
if (this == o)
107+
{
108+
return true;
109+
}
110+
if (o == null || getClass() != o.getClass())
111+
{
112+
return false;
113+
}
114+
115+
File file = (File) o;
116+
117+
if (!name.equals(file.name))
118+
{
119+
return false;
120+
}
121+
if (!path.equals(file.path))
122+
{
123+
return false;
124+
}
125+
if (!extension.equals(file.extension))
126+
{
127+
return false;
128+
}
129+
130+
return systemRepresentation.equals(file.systemRepresentation);
131+
}
132+
133+
@Override
134+
public int hashCode()
135+
{
136+
int result = name.hashCode();
137+
result = 31 * result + path.hashCode();
138+
result = 31 * result + extension.hashCode();
139+
result = 31 * result + systemRepresentation.hashCode();
140+
return result;
141+
}
102142
}

0 commit comments

Comments
 (0)