Java程序精编教程(7.10上机实践)

实验目的

本实验的目的是让学生掌握接口回调和面向接口编程思想

实验要求

小狗在不同的环境下可能呈现不同的状态。要求用接口封装小狗的状态

程序代码

interface DogState {
	public void showState();
}

class SoftlyState implements DogState {
	//重写public void showState()
	public void showState() {
		System.out.println("在主人面前,听主人的命令");
	}
}

class MeetEnemyState implements DogState {
	//重写public void showState()
	public void showState() {
		System.out.println("遇到敌人狂叫,并冲上去咬敌人");
	}
}

class MeetFridendState implements DogState {
	//重写public void showState()
	public void showState() {
		System.out.println("遇到朋友晃动尾巴,表示欢迎");
	}
}

class MeetAnotherDog implements DogState {
	//重写public void showState()
	public void showState() {
		System.out.println("嬉戏");
	}
}

class Dog{
	DogState state;
	public void cry() {
		state.showState();
	}
	public void setState(DogState s) {
		state = s;
	}
}

public class CheckDogState{
	public static void main(String arg[]) {
		Dog yellowDog = new Dog();
		yellowDog.setState(new SoftlyState());
		yellowDog.cry();
		yellowDog.setState(new MeetEnemyState());
		yellowDog.cry();
		yellowDog.setState(new MeetFridendState());
		yellowDog.cry();
		yellowDog.setState(new MeetAnotherDog());
		yellowDog.cry();
	}
}

运行结果:

posted @   七色彩虹k  阅读(601)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
点击右上角即可分享
微信分享提示