为什么我的总价应为11时打印为0.0

时间:2018-12-14 07:33:24

标签: java

我是新来的Java程序员。我正在编写一个有关餐厅菜单的程序,但是我的价格无法正确计算。每次给我0.0,应该是11.0

public class Main {

    public static double priceBreadrollType;
    public static double priceMeat;
    public static double totalPrice;

    public static void main(String[] args) {
        setTotalPrice();
    }

    public static void priceBread (){
        priceBreadrollType = 1;
    }

    public static void priceMeat(){
        priceMeat = 10;
    }

    public static void setTotalPrice(){
        totalPrice = priceBreadrollType + priceMeat;
        System.out.println("The total prize " + totalPrice);
    }



}

3 个答案:

答案 0 :(得分:8)

您永远不会调用将相应静态变量设置为priceBread ()priceMeat()的{​​{1}}和1方法,因此默认情况下它们仍为10。 / p>

尝试:

0.0

答案 1 :(得分:0)

这里的真正问题是您正在混淆字段和方法。

您应该只使用字段,或者仅使用方法来获取/更新值。

priceBreadrollType + priceMeat;

添加时仅将字段添加为0。

答案 2 :(得分:0)

静态块和静态方法之间有一些不同。

public class Main {

    public static double priceBreadrollType;
    public static double priceMeat;
    public static double totalPrice;
    static {
        /* priceBreadrollType = 1;
        priceMeat = 10; */
        /* calling the static method in static block or initializing the price are same;  */
        priceBread();
        priceMeat();
    }
    public static void main(String[] args) {
        setTotalPrice();
    }
    public static void priceBread (){
        priceBreadrollType = 1;
    }
    public static void priceMeat(){
        priceMeat = 10;
    }
    public static void setTotalPrice(){
        totalPrice = priceBreadrollType + priceMeat;
        System.out.println("The total prize " + totalPrice);
    }
}