增加”男孩们会向女孩提问:你在干嘛?女孩会回复:我不告诉你~“这个方法
时间: 2024-02-26 13:58:27 浏览: 32
好的,我们可以在 Girl 类中增加一个方法来处理男孩们的提问:
```java
class Girl {
private List<Observer> observers = new ArrayList<>();
private String status = "";
// 其他方法省略
public void answerQuestion() {
System.out.println("男孩们向女孩提问:你在干嘛?");
System.out.println("女孩回答:我不告诉你~");
}
}
```
然后在 Boy 类中调用该方法:
```java
class Boy implements Observer {
private String name;
private Girl girl;
public Boy(String name, Girl girl) {
this.name = name;
this.girl = girl;
}
// 其他方法省略
public void askQuestion() {
System.out.println(name + "向女孩提问:你在干嘛?");
girl.answerQuestion();
}
}
```
注意,在 Boy 类中需要持有 Girl 对象的引用。
完整的示例代码如下:
```java
import java.util.ArrayList;
import java.util.List;
interface Observer {
void update(String status);
}
class Girl {
private List<Observer> observers = new ArrayList<>();
private String status = "";
public void attach(Observer observer) {
observers.add(observer);
}
public void detach(Observer observer) {
observers.remove(observer);
}
public void notifyObservers() {
for (Observer observer : observers) {
observer.update(status);
}
}
public void updateStatus(String status) {
this.status = status;
notifyObservers();
}
public void answerQuestion() {
System.out.println("男孩们向女孩提问:你在干嘛?");
System.out.println("女孩回答:我不告诉你~");
}
}
class Boy implements Observer {
private String name;
private Girl girl;
public Boy(String name, Girl girl) {
this.name = name;
this.girl = girl;
}
@Override
public void update(String status) {
System.out.println(name + "收到了女孩的状态更新:" + status);
}
public void askQuestion() {
System.out.println(name + "向女孩提问:你在干嘛?");
girl.answerQuestion();
}
}
public class Main {
public static void main(String[] args) {
// 创建一个女孩对象
Girl girl = new Girl();
// 创建三个男孩对象
Boy boy1 = new Boy("小明", girl);
Boy boy2 = new Boy("小李", girl);
Boy boy3 = new Boy("小张", girl);
// 男孩们关注女孩
girl.attach(boy1);
girl.attach(boy2);
girl.attach(boy3);
// 女孩更新状态,男孩们会收到通知
girl.updateStatus("我在看电影");
// 男孩们向女孩提问
boy1.askQuestion();
boy2.askQuestion();
boy3.askQuestion();
}
}
```
输出结果如下:
```
小明收到了女孩的状态更新:我在看电影
小李收到了女孩的状态更新:我在看电影
小张收到了女孩的状态更新:我在看电影
小明向女孩提问:你在干嘛?
男孩们向女孩提问:你在干嘛?
女孩回答:我不告诉你~
小李向女孩提问:你在干嘛?
男孩们向女孩提问:你在干嘛?
女孩回答:我不告诉你~
小张向女孩提问:你在干嘛?
男孩们向女孩提问:你在干嘛?
女孩回答:我不告诉你~
```