为了账号安全,请及时绑定邮箱和手机立即绑定

为什么是return this.getTotalPrice();,不写成return sum;

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计算吗?


正在回答

3 回答

直接返回sum  属性 totalPrice 里就没有值了  其他地方要用到的话就不方便了;

第二个问题你去看看JavaBean 这是一种规范。属性一般设为私有 不可直接调用,只能通过set get 方法来操作。

0 回复 有任何疑惑可以回复我~

第一个问题:我觉得return this.getTotalPrice();return sum,没什么大区别,这样写就能用两个方法访问总价格而已。

第二个问题:sum是局部变量,totalPrice是全局的,其他方法不能修改sum,这样安全。而totalPrice其他方法可以随意修改,不安全。

0 回复 有任何疑惑可以回复我~

这是由于总价格进行了包装,访问时,需要用包装后的访问方法,否则直接用sum返回,一是,不规范,二是:不安全

2 回复 有任何疑惑可以回复我~
#1

freehappy

不安全?什么意思?
2017-12-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么是return this.getTotalPrice();,不写成return sum;

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信