编写DogState接口,接口中有showState方法。编写若干个实现DogState接口的类,负责刻画小狗的各种状态。mmetEmemyState,meetFriendState,meetAnotherDog,SoftlyState。编写Dog类,有DogState定义的属性state,有show方法,在该方法回调showState方法。编写测试类,测试类的状态
时间: 2024-01-12 12:05:20 浏览: 77
好的,我会根据你的要求进行回答。
首先,根据你的要求,我们需要编写一个DogState接口,代码如下:
```java
public interface DogState {
void showState();
}
```
然后,根据你的要求,我们需要编写若干个实现DogState接口的类,分别代表小狗的不同状态。代码如下:
```java
public class MeetEnemyState implements DogState {
@Override
public void showState() {
System.out.println("小狗遇到了敌人,开始狂吠!");
}
}
public class MeetFriendState implements DogState {
@Override
public void showState() {
System.out.println("小狗遇到了朋友,摇尾巴欢迎!");
}
}
public class MeetAnotherDogState implements DogState {
@Override
public void showState() {
System.out.println("小狗遇到了另一只小狗,开始打闹!");
}
}
public class SoftlyState implements DogState {
@Override
public void showState() {
System.out.println("小狗变得安静,开始休息!");
}
}
```
接着,根据你的要求,我们需要编写一个Dog类,有一个DogState类型的属性state,以及一个show方法,在该方法回调state的showState方法。代码如下:
```java
public class Dog {
private DogState state;
public void setState(DogState state) {
this.state = state;
}
public void show() {
state.showState();
}
}
```
最后,根据你的要求,我们需要编写一个测试类,测试不同状态下小狗的表现。代码如下:
```java
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.setState(new MeetEnemyState());
dog.show();
dog.setState(new MeetFriendState());
dog.show();
dog.setState(new MeetAnotherDogState());
dog.show();
dog.setState(new SoftlyState());
dog.show();
}
}
```
以上就是根据你的要求编写的代码,希望能够满足你的需求。