
public static void main(String[] args) {
Master master = new Master()
master.feedDog("鸡骨头")
master.feedCat("鸡骨头")
}
}
class Master {
private Pet mPet
private Food mFood
public void feedCat(String food) {
mPet = new Cat()
mFood = new Food(food)
mPet.eat(mFood)
}
public void feedDog(String food) {
mPet = new Dog()
mFood = new Food(food)
mPet.eat(mFood)
}
}
class Dog extends Pet{
@Override
public void eat(Food food) {
System.out.println("正在喂小狗吃"+food.getFood())
if (food.getFood().matches(Food.BONE)) {
System.out.println("小狗正在吃"+food.getFood()+"!")
}else {
System.out.println("但是小狗不喜欢吃"+food.getFood()+"!")
}
}
}
class Cat extends Pet{
@Override
public void eat(Food food) {
System.out.println("正在喂小猫吃"+food.getFood())
if (food.getFood().matches(Food.FISH)) {
System.out.println("小猫正在吃"+food.getFood()+"!")
}else {
System.out.println("但是小猫不喜欢吃"+food.getFood()+"!")
}
}
}
class Food {
public final static String BONE = ".*骨.*"
public final static String FISH = ".*鱼.*"
private String food
public String getFood() {
return food
}
public void setFood(String food) {
this.food = food
}
public Food(String food) {
this.food = food
}
}
class Pet {
public void eat(Food food) {
}
}
死机是指CPU的程序指针进入一个死循环,无法按照我们编入的逻辑执行正常的程序流程。我们直接观察到的现象是正常功能丧失,按键无反应,显示进入定格状态。单片机死机后,只有复位才能走出死循环,执行正常的程序流程。玩单片机的都知道解决死机的最有效手段是加看门狗。
目前用得最广泛的看门狗实际上是一个特殊的定时器DogTimer。DogTimer按固定速率计时,计满预定时间就发出溢出脉冲使单片机复位。如果每次在DogTimer溢出前强行让DogTimer清零,就不会发出溢出脉冲。清零脉冲由CPU发出,在单片机程序中每隔一段语句放一个清DogTimer的语句--FeedDog语句,以保证程序正常运行时DogTimer不会溢出。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)