编写 DogState 接口,接口中有 showState 方法编写若千个实现 DogState 接口的类,负责刻画小狗的各种状(2)态。 meetEnemyState( 狂叫)、 meetFriendState( 晃动尾巴)、meetAnotherDog( 嬉戏)、 SoftlyState( 听主人命令)(3)编写 Dog 类,有DogState 定义的属性 state,有 show 方法在该方法中回调 showState 方法。(4)编写测试类,测试小狗的各种状态
时间: 2024-01-14 09:02:32 浏览: 63
好的,我可以为您解答这个问题。下面是代码实现:
首先,我们需要定义一个 DogState 接口,其中有 showState 方法:
```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();
}
}
```
这样,我们就完成了小狗状态的设计和实现。