要求:1键盘输入小鸡的名字和地主的名字,当小鸡打鸣,地主就叫起床。 2分析源代码中,那个类是事件源(事件发布者),那个类是事件订阅者,那个类是事件执行者。
时间: 2024-05-14 11:15:10 浏览: 15
代码如下:
```
public class Chicken {
private String name;
public Chicken(String name) {
this.name = name;
}
public void crow() {
System.out.println(name + " crowed!");
Landlord landlord = new Landlord();
landlord.wakeUp();
}
}
public class Landlord {
public void wakeUp() {
System.out.println("Landlord waked up!");
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please input the name of the chicken:");
String chickenName = scanner.next();
System.out.println("Please input the name of the landlord:");
String landlordName = scanner.next();
Chicken chicken = new Chicken(chickenName);
System.out.println("The chicken's name is " + chickenName);
System.out.println("The landlord's name is " + landlordName);
chicken.crow();
}
}
```
在这个代码中,Chicken类是事件源(事件发布者),Landlord类是事件订阅者,Main类是事件执行者。当小鸡打鸣(事件发生),它会创建一个Landlord对象(事件订阅者),并调用其wakeUp方法(事件处理方法)。这个过程中,Main类起到了整个程序的控制作用,它创建了Chicken对象(事件源)并让它发出事件。