qq_不囧_0
2017-10-10 18:48
public double calTotalPrice(){
double sum=0.0;
Set<Items> keys=goods.keySet();//获取键的集合
Iterator<Items> it=keys.iterator();//获得迭代器对象
while(it.hasNext()){
Items i=it.next();
sum +=i.getPrice()*goods.get(i);
}
this.setTotalPrice(sum);
return this.getTotalPrice();
}
上述方法:
1)为什么是return this.getTotalPrice();,不写成return sum;?
2)Cart类属性里面已经有double totalPrice这个属性了,干嘛还要定义一个局部变量sum,不可以直接用double totalPrice计算吗?
直接返回sum 属性 totalPrice 里就没有值了 其他地方要用到的话就不方便了;
第二个问题你去看看JavaBean 这是一种规范。属性一般设为私有 不可直接调用,只能通过set get 方法来操作。
第一个问题:我觉得return this.getTotalPrice();return sum,没什么大区别,这样写就能用两个方法访问总价格而已。
第二个问题:sum是局部变量,totalPrice是全局的,其他方法不能修改sum,这样安全。而totalPrice其他方法可以随意修改,不安全。
这是由于总价格进行了包装,访问时,需要用包装后的访问方法,否则直接用sum返回,一是,不规范,二是:不安全
JAVA遇见HTML——Servlet篇
160617 学习 · 1053 问题
相似问题