小狗的状态(java)

小狗在不同环境条件下可能呈现出不同的状态表现,要求用接口封装小狗的状态。具体要求如下:

  1. 编写一个接口DogState,该接口有一个名字为void showState()的方法。
  2. 编写Dog类,该类中有一个DogState接口声明的变量State。另外,该类有一个show()方法,在该方法中让接口state回调showState()方法。
  3. 编写若干个实现DogState接口的类,负责刻画小狗的各种状态。
  4. 编写主类,在主类中测试小狗的各种状态。

package main;

public interface DogState {
    public void showState();
}

public class Dog {
    DogState state;
    public void show(){
        state.showState();
    }
    public void setState(DogState s){
        state=s;
    }
}
public class MeetEnemyState  implements DogState{
   void showState()
    {
        System.out.println("狗会警惕!");
    }//重写showState()
}

public class MeetFriendState  implements DogState{
    void showState()
    {
        System.out.println("狗会开心!");
    }//重写showState()
}

public class MeetAnotherDog implements DogState{
    void showState()
    {
        System.out.println("狗会摇尾巴!");
    }//重写showState()
}

public class CheckDogState {
    public static void main(String[] args) {
        Dog yellowDog=new Dog();
        System.out.print("狗遇到敌人");
        yellowDog.setState(new MeetEnemyState());
        yellowDog.show();
        System.out.print("狗遇到朋友");
        yellowDog.setState(new MeetFriendState());
        yellowDog.show();
        System.out.print("狗遇到同伴");
        yellowDog.setState(new MeetAnotherDog());
        yellowDog.show();
    }

}

运行结果截图:

  • 13
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值