-1

有没有人看到这里做错了什么,我收到此错误“Guest 类型中的方法 giveTea 不适用于参数 (void),我是 java 新手 + 我的英语不好 XD,所以这是什么意思。

Guest alice = new Guest();
alice.giveTea. (new Tea().setName("Roseship Tea"));
alice.giveTea. (new Tea().setSugar(false));
alice.giveTea. (new Tea().setMilk(true));'
4

3 回答 3

1

setter 返回 void,而不是实例本身。你应该这样做

Guest alice = new Guest();
Tea tea = new Tea();
tea.setName("Roseship Tea");
tea.setSugar(false);
tea.setMilk(true);
alice.giveTea(tea);
于 2012-12-27T20:48:31.083 回答
0

返回类型new Tea().setName("Rosehip Tea")void因为setName()不返回任何东西。这样做:

Tea t = new Tea();
t.setName("Rosehip Tea");
于 2012-12-27T20:48:50.537 回答
0

setter 方法通常具有返回类型 void。方法给茶大概是一种茶。您正在做的是创建一个对象并将属性添加在一起。您应该拆分它或创建一个立即设置某些属性的构造函数。

后者是一个好方法,因为 Tea 对象在创建后应该是一个不可变对象。因此它的设计应该是这样的:

public class Tea{
 private final String teatype;
 private final boolean sugar;

 public Tea(String pType, boolean pSugar){
  teatype = pType;
  sugar = pSugar;
 }

 public String getTeatype(){
  return teatype;
 }
 ....

}
于 2012-12-27T20:55:42.370 回答