**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
上个月关门了。
改进这个问题
我是新来编码的。我有三节课 Payment
, CashPayment
,和 MainClass
. 我想访问getter的payment类的值 CashPayment
方法。我打电话来了 Payment
进入 MainClass
设置 amountOfPayment
示例,然后通过中的getter访问它 CashPayment
. 但是,它总是返回0。
付款.java
public class Payment {
public double amountOfPayment;
public Payment(){}
public double getAmountOfPayment() {
return this.amountOfPayment;
}
public void setAmountOfPayment(double amountOfPayment) {
this.amountOfPayment = amountOfPayment;
}
}
现金支付.java
public class CashPayment {
public String paymentDetails() {
Payment payment = new Payment();
return "Payment : " + payment.getAmountOfPayment();
}
}
付款驱动程序.java
public class PaymentDriver {
public static void main(String args[]){
Payment payment = new Payment();
payment.setAmountOfPayment(200);
CashPayment cashPayment = new CashPayment();
System.out.println(cashPayment.paymentDetails());
}
}
输出 Payment : 0.0
//这应该是200.0
2条答案
按热度按时间6yoyoihd1#
你用的是完全不同的
Payment
对象中的对象示例paymentDetails()
方法,而不是您尝试引用的方法。有很多方法可以解决这个问题。一个简单的,但不一定是建筑优雅的方式将是定义您的
paymentDetails()
采取措施Payment
参数并传入在中创建的参数main()
```public class CashPayment {
public String paymentDetails(Payment payment) {
return "Payment : " + payment.getAmountOfPayment();
}
vptzau2j2#
还有其他方法可以实现:
继承
如果
CashPayment
扩展Payment
类,然后是它的方法paymentDetails
不需要创建另一个Payment
对象:那么驱动程序/测试方法如下所示:
输出:
聚合(示例)
CashPayment
有一个示例Payment
):一
Payment
需要将带有setter的字段添加到CashPayment
班级。或者,可以通过构造函数设置此字段。驱动程序类更新:
输出: