[英]Object passed to the method in java
我試着模擬一部手機。 我創建了以下方法:
我的問題是,當我將一個對象傳遞給passLoadTo()
方法,然后打印該對象的摘要時,它不會更改該對象的狀態。
這是我正在嘗試做的事情:
public class MobilePhone {
private double credit;
private int totalMinutes;
private double ratePerCall;
private int numOfText;
MobilePhone()
{
credit = 0;
totalMinutes = 0;
ratePerCall = 6.50;
numOfText = 0;
}
public void load(double pesos) {
if(pesos > 25) {
credit = credit + pesos;
} else {
//System.out.println("The attempting to use this service is forbidden.");
//System.out.println();
}
}
//other code
public void printSummary() {
System.out.printf("Credit left: P%.2f" ,getLoadLeft());
System.out.println();
System.out.println("Total call duration "+getTotalMinutesCalled()+" mins");
System.out.printf("Rate per call: P%.2f" ,ratePerCall);
System.out.println();
System.out.println("Number of text message send: " +getNumTextMessage());
System.out.println();
}
public void passLoadTo(MobilePhone dest, double amount) {
if(credit > amount) {
credit = credit - amount;
dest.load(amount);
} else {
System.out.println("fail");
System.out.println("The attempting to use this service is forbidden.");
System.out.println();
}
}
}
此代碼用於測試目的:
public class Main {
public static void main(String[] args) {
MobilePhone mp = new MobilePhone();
MobilePhone mp1 = new MobilePhone();
mp.load(30);
mp.printSummary();
mp.changeRate(1);
mp.printSummary();
mp.call(1);
mp.printSummary();
System.out.println(mp.getTotalMinutesCalled());
mp.passLoadTo(mp1, 30);
mp.printSummary();
mp1.printSummary();
}
}
我想要的是每當我創建一個2移動對象(mp和mp1)並調用mp.passLoadTo(mp1,1)方法時,mp1摘要的摘要打印我從mp添加到mp1的負載
你的主要問題是:
if(credit > amount) {
您正在檢查信用額度是否大於金額,但您只需加載30並支出30,這將失敗(30 > 30)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.