为什么这个mutator方法即使在调用它之后也会返回错误?

时间:2017-11-29 19:20:22

标签: java bluej

我打电话给'setPrice()'一个班级的改变方法'假日'持有' double'作为数据类型。但是,当我添加假日.setPrice()'时,它表示假日类中的方法setPrice不能应用于给定的类型:double"。我很困惑为什么会这样。

public void checkOut(Member member, Holiday holiday){
        if(member.getBalance() >= holiday.getPrice()){
            System.out.println("Transaction complete"); 
            System.out.println("You have been automatically logged off");
             member.setLoginStatus(false);
             if(checkHitDiscount() == true){
             holiday.setPrice() = discount - holiday.getPrice() ;
             System.out.println(" Good news! You're eligible for a discount!");
            }else{
                System.out.println("No discount available, try again next time");
            }
        } else { 
                System.out.println("You don't have suffiencient funds");
            }
    }

1 个答案:

答案 0 :(得分:0)

您正在尝试使用以下行:

holiday.setPrice() = discount - holiday.getPrice();

这应该是

holiday.setPrice(discount - holiday.getPrice());

代替。函数的输入在括号内。

编辑:discountholiday.getPrice()也可能会根据其名称进行撤销。

EDIT2:您现有代码尝试执行的操作是将discount - holiday.getPrice()的值分配给假设holiday.setPrice()没有输入的双精度值。这是不允许的,因为这是一个值,而不是一个变量(即:一个名称,指的是存储值的内存中的一个点)。这有点像尝试执行5 = 3 + 4;。