62,614
社区成员
发帖
与我相关
我的任务
分享
public interface Icebox {
public String work();
}
public class SimpleIcebox implements Icebox {
public String work() {
// TODO Auto-generated method stub
return "我是个冰箱 , 我开始工作鸟";
}
}
abstract class IceboxDecorator implements Icebox{
protected Icebox icebox; // the Window being decorated
public IceboxDecorator(Icebox icebox){
this.icebox = icebox;
}
}
public class Refrigerator extends IceboxDecorator {
public Refrigerator(Icebox icebox){
super(icebox);
}
public String work() {
// TODO Auto-generated method stub
return icebox.work() + " , 我可以冷藏" ;
}
}
public class Freezer extends IceboxDecorator {
public Freezer(Icebox icebox){
super(icebox);
}
public String work() {
// TODO Auto-generated method stub
return icebox.work() + " , 我可以冷冻" ;
}
}
Icebox icebox1 = new Freezer(new SimpleIcebox());
System.out.println(icebox1.work());
输出结果:我是个冰箱 , 我开始工作鸟 , 我可以冷冻
Icebox icebox2 = new Refrigerator(new SimpleIcebox());
System.out.println(icebox2.work());
输出结果:我是个冰箱 , 我开始工作鸟 , 我可以冷藏
Icebox icebox3 = new Freezer(new Refrigerator(new SimpleIcebox()));
System.out.println(icebox3.work());
输出结果:我是个冰箱 , 我开始工作鸟 , 我可以冷藏 , 我可以冷冻
package JavaTest;
public class Microwave implements Runnable {
public boolean isCooking = false;
public Food food;
public int time;
public Microwave(Food food, int time) {
this.food = food;
this.time = time;
}
@Override
public void run() {
cook(food, 3000);
}
public synchronized void cook(Food food, int time) {
System.out.println("door is closed ...");
if (food.isSheel) {
System.out
.println("this microwave is not available for Food with sheels!");
return;
}
System.out.println("cooking ....");
try {
Thread.sleep(time);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("food is OK!");
open();
}
private void open() {
System.out.println("door is opened. ");
}
public static void main(String[] args) {
Microwave mw = new Microwave(new Food(false), 2000);
new Thread(mw).start();
new Thread(mw).start();
}
}
class Food {
public boolean isSheel = false;
public Food(boolean sheel) {
this.isSheel = sheel;
}
}
public boolean flag=false;
private boolean flag=false;
public class weiBoLu
{
public boolean flag=false;
public void setFlagFalse()//烘拷完成,取出食物
{
flag=false;
}
public void hongKao(boolean k,boolean p)//烘拷箱
{
if(flag)
{
System.out.println("对不起!正在烘拷,不能开门");
return ;
}
else
{
if((k&&p))
{
System.out.println("对不起!带皮且带壳的食物更加不能烘拷");
return;
}
if (k||p)
{
if(k)
System.out.println("对不起!带壳的食物不能烘拷");
else
System.out.println("对不起!带皮的食物不能烘拷");
}
else
{
System.out.println("正在烘拷......");
flag=true;
}
}
}
public static void main(String [] args)
{
weiBoLu td = new weiBoLu();
td.hongKao(false,false);//既不带皮也不带壳
td.setFlagFalse();//烘拷完成,取出食物
td.hongKao(false,false);
/*当要对食物进行烘拷之前一定要把原烘拷箱内
* 的食物取出,否则无法烘拷,试着将下条语句注释*/
td.setFlagFalse();//烘拷完成,取出食物
td.hongKao(true,false);//带壳的食物
td.hongKao(false,true);//带皮的食物
td.hongKao(true,true);//既带皮又带壳的食物
td.hongKao(false,false);//此语句可以说明上面三条语句都没有将食物放到烘拷箱内
}
}
weiBoLu td = new weiBoLu();
食物进行烘拷之前一定要把原烘拷箱内
alse,false);//此语句可以说明上面三条语句都没有将食物放到烘拷箱内interface BingXiangGui
{
void work();
void stop();
}
//冷藏柜
class LengCang implements BingXiangGui
{
public void work()
{
System.out.println("冷藏柜正在工作");
}
public void stop()
{
System.out.println("冷藏柜停止工作");
}
}
//冷冻柜
class LengDong implements BingXiangGui
{
public void work()
{
System.out.println("冷冻柜正在工作");
}
public void stop()
{
System.out.println("冷冻柜停止工作");
}
}
class BingXiangMen
{
public void kaiMen(BingXiangGui bxg)
{
bxg.work();
bxg.stop();
}
}
class BingXiang
{
public static void main(String [] args)
{
BingXiangMen bxm=new BingXiangMen();
LengCang lc=new LengCang();
LengDong ld=new LengDong();
bxm.kaiMen(lc);//lc隐式转型为bxg,向上转型
bxm.kaiMen(ld);
}
}