繁体   English   中英

我该如何打印出来?

[英]How do i print this out?

我想打印出cook3所做的准备工作。 这应该出来:“鹅卵石穿上围裙”。 但是相反,我只能得到:“穿上围裙”,所以没有名字。 我正在尝试添加一种策略模式,我认为我已经做到了,但是唯一的问题是现在。

这是我的代码:

package cook;

import cook.domein.Restaurant;
import cook.domein.apron;
import cook.domein.classic;
import cook.domein.cook;
import cook.domein.hardRock;
import cook.domein.knives;
import cook.domein.preperation;

public class main {
public static void main(String[] args) {
    Restaurant rest = new Restaurant();

    cook cook1 = new cook("");
    cook cook2 = new cook("Glenn");
    cook cook3 = new cook("Pebble");

    rest.addCook(cook1);
    rest.addCook(cook2);
    rest.addCook(cook3);

    rest.doPreparation(new apron());


}
}

这是我的界面:

   package cook.domein;

  public interface preperation {
          public void doPreparation(String naam);


}

这是我的子类围裙

 package cook.domein;

 public class apron implements preperation {
    @Override
    public void doPreparation(String naam) {
    System.out.println(naam+"Putting on a Apron");
}

   }

这是我的餐厅课:

    package cook.domein;

导入java.util.ArrayList; 导入java.util.List;

公共类餐厅实行预备{

public Restaurant() {
    this.cooks= new ArrayList<cook>();
}

public void addCook(cook cook) {
    this.cooks.add(cook);

}

public void removeCook(cook cook) {
    this.cooks.remove(cook);
}
public String calculateTotal(){
    for(cook cook: cooks){
        cook.getNaam();
    }
    return "";

}
public void doPreparation(preperation prepMethod){
    String naam = calculateTotal();
    prepMethod.doPreparation(naam);
}

@Override
public void doPreparation(String naam) {
    // TODO Auto-generated method stub

}


 }

和烹饪课:包cook.domein;

     public class cook {
private cook naam;

public cook(cook naam) {

    this.naam = naam;

}

public cook(String string) {
    // TODO Auto-generated constructor stub
}

public cook getNaam() {
    return naam;
}

public void setNaam(cook naam) {
    this.naam = naam;
}




  }

您正在将一个空字符串传递给doPreparation方法。 原因如下:

public String calculateTotal(){
    for(cook cook: cooks){
        cook.getNaam();
    }
    return "";
}

此方法只会返回一个空字符串。 这就是为什么要获得自己的输出的原因。 它按设计工作。

您可能打算遍历餐厅中的所有厨师,并与他们一起进行准备。 这是一种解决方法。

public void doPreparation(preperation prepMethod){
    for(cook currentCook : cooks) {
        prepMethod.doPreparation(currentCook.getNaam());
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM