把小孩醒来时的具体情况封装成事件类
Test.java
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
|
class
WakenUpEvent{
private
long
time;
private
String location;
private
Child source;
public
WakenUpEvent(
long
time, String location, Child source) {
super
();
this
.time = time;
this
.location = location;
this
.source = source;
}
public
long
getTime() {
return
time;
}
public
void
setTime(
long
time) {
this
.time = time;
}
public
String getLocation() {
return
location;
}
public
void
setLocation(String location) {
this
.location = location;
}
public
Child getSource() {
return
source;
}
public
void
setSource(Child source) {
this
.source = source;
}
}
class
Child
implements
Runnable {
private
Dad dad;
public
Child(Dad dad) {
this
.dad = dad;
}
public
void
wakeUp(){
dad.actionToWakenUp(
new
WakenUpEvent(System.currentTimeMillis(),
"bed"
,
this
));
}
@Override
public
void
run() {
try
{
Thread.sleep(
3000
);
}
catch
(Exception e) {
e.printStackTrace();
}
wakeUp();
}
}
class
Dad {
public
void
actionToWakenUp(WakenUpEvent e) {
System.out.println(e.getTime());
System.out.println(e.getLocation());
System.out.println(e.getSource());
System.out.println(
"Fedd the child"
);
}
}
public
class
Test {
public
static
void
main(String[] args) {
Dad d =
new
Dad();
Child c =
new
Child(d);
new
Thread(c).start();
}
}
|
运行结果: