有没有人看到我在这里做错了什么,我得到这个错误" 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));'
setter返回void,而不是实例本身。你应该这样做
Guest alice = new Guest();
Tea tea = new Tea();
tea.setName("Roseship Tea");
tea.setSugar(false);
tea.setMilk(true);
alice.giveTea(tea);
new Tea().setName("Rosehip Tea")
的返回类型是void
,因为setName()
没有返回任何东西。这样做:
Tea t = new Tea();
t.setName("Rosehip Tea");
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;
}
....
}