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

来源:2-7 购物车类的设计

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


写回答 关注

3回答

  • _余生
    2018-05-30 21:02:32

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

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

  • freehappy
    2017-12-19 11:26:08

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

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

  • qq_陕西逍遥_0
    2017-10-12 21:47:20

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

    freeha...

    不安全?什么意思?

    2017-12-19 09:45:35

    共 1 条回复 >

JAVA遇见HTML——Servlet篇

本门课程在JSP课程的基础上,深入介绍Servlet的基础知识

160617 学习 · 1053 问题

查看课程

相似问题