某公司面试题,用面向对象的思想写一下代码,题目很简单,小弟我就写不好

某公司面试题,用面向对象的思想写一下代码,题目很简单,我就写不好代码题(用oop的思想编码,注意代码规范)用

某公司面试题,用面向对象的思想写一下代码,题目很简单,我就写不好
代码题(用oop的思想编码,注意代码规范)

用java写一个微波炉,注意物品正加热时不能开门,带皮带壳食物不能被加热。

用Java写一个冰箱,注意家用冰箱多数分为冷冻柜和冷藏柜两个柜(冰箱随机)

如题,就是要用面向对象的方式写代码,我怎么看不出来怎么写,

比如第二题,我一个接口然后具体类实现接口完事,结果被鄙视,无情鄙视啊

这是某某的面试题,大家各抒己见!!!

[解决办法]
要考虑的比较全的话还是有些工作的,随便写的可能有些地方有误

Java code
public class MicoroWaveOven {    private String   doorState=null;    private boolean isPowerOn=false;    private Food cookingFood=null;        public void fire(Food food){        if(!this.isPowerOn) return;        if(food==null) return;                if(this.doorState.equals("opend")){            alert("请先关门!");            return;                    }                if(food.hasShell()){            alert("本产品不能烹饪带壳食物!");                        openDoor();            return;        }                this.cookingFood=food;                //to-do:另启动线程加热食物    }        public void cookFood(){        if(this.cookingFood==null) return;                while(cookingFood.getState()!=FoodState.COOKED){            cookingFood.changeState();        }                openDoor();    }        public void openDoor(){        if(cookingFood==null          ||cookingFood.getState()==FoodState.COOKED){            this.doorState="opened";                }else{            alert("食物正在加热中请稍后");        }                }        public void on(){        this.isPowerOn=true;    }        public void off(){        this.isPowerOn=false;    }        public void closeDoor(){        this.doorState="closed";    }        public boolean isDoorOpen(){        return this.doorState.equals("opened");    }        public boolean isDoorClose(){        return this.doorState.equals("closed");    }        public void alert(String message){        System.out.println("警告:"+message);    }}interface Food{        public boolean   hasShell();        public void      changeState();    public FoodState  getState();}enum FoodState{    RARE,    HALF_RARE,    COOKED,    FIRED}
[解决办法]
看着很有意思,请指教!
class Microwave { 
int power;
int size;
int container;
int color;
boolean open
double time [] = {1,2,3,4,5,6,7,8,9,};
String model;
Person p;



public double timeMenu(double time) {
for(int i=0; i<time.length(); i++;) {
System.out.println("已工作时间:" + time[i] + "min");
heating(new Food());
}
}

public void heating(Food food) {
System.out.println("食物正在加热");
if(p.normal) {
System.out.println("I couldn't open the door");
} else {
System.out.println("疯子");
}
}

}


class Food {
boolean sikn_food = true;
int weigth;
int height;
int size;
int type;
} 


public class Person {
boolean normal = true;

public boolean judgeFood(Food food) {
eye();
}

public void eye(Food food){
if(food == skin_food) {
System.out.println("这是有皮的食物,不可以在微波炉中加热");
break;
} else if(food != skin_food) {
System.out.println("这是无皮的食物,可以在微波炉中加热");
handTime();
}
}

public void handTime() {
timeMenu();

}

public static void main(String[] args) {
Person p = new Person();
p.judgeFood();
}


[解决办法]
关于冰箱的问题说的不清楚,我发表一下我对微波炉的看法,我觉得它真的能看出一个程序员的水平高低
我们来分析一下这个问题
用java写一个微波炉,注意物品正加热时不能开门,带皮带壳食物不能被加热。 


1,微波炉是一个对象,它应该是一个公共对象,大家都可以用。
2,注意物品正加热时不能开门,我们可以理解,这个对象在执行时,是排它的,唯一的
3,带皮带壳食物不能被加热。这个对象不是万能的,有些事它是不可以做的。
因此,我们的对象是公共对象,它有一个开关(属性),同时有开关方法,并且是单例程序,并且有同步约束,在方法体里加一些判断, 这个过程就OK了。

[解决办法]

探讨
具体编码就不写了。
第一个我感觉几个if判断就可以完事。
第二个用一个工厂模式,写一个接口,两个类,然后冰雪用字符串传(参数)。

[解决办法]
package test;
public class Test 
{ 

public static void main(String[] arges){ 

Food egg = new Food("egg",true);
Food milk = new Food("milk",false);
Weibolu myFamily = new Weibolu();
myFamily.open();
myFamily.put(egg);
myFamily.heat();

myFamily.open();
myFamily.put(milk);
myFamily.heat();


} 
}
//用java写一个微波炉,注意物品正加热时不能开门,带皮带壳食物不能被加热。
class Weibolu
{
boolean isHeat = false;
java.util.ArrayList<Food> foodList = new java.util.ArrayList<Food>();
synchronized void open() {
if (!isHeat)
{
System.out.println("可以打开!");
}
else {
System.out.println("正在加热,不可以打开!");
}
}

void heat() {
if (foodList.size() == 0)
{
System.out.println("没有食物不能加热!");
return;
}
isHeat = true;
System.out.println("正在加热。。。");
try
{
wait(10000);
}
catch (Exception ex)
{

}

System.out.println("加热完毕!");
isHeat = false;
}

synchronized void put(Food food) {
if (food.isHavePK)
{
System.out.println(food.name + ",带皮的不能被加热!");
}
else {
System.out.println(food.name + ",能被加热!");
foodList.add(food);
}
}

void takeAll() {

}

};

class Food
{
String name;
boolean isHavePK;
public Food(String n,boolean pk) {
name = n;
isHavePK = pk;
}


};