携帯電話をシミュレートしようとしています。次のメソッドを作成しました。
- ロード
- 電話
- sendTextMessage
- getLoad
- getTotalMinutesCalled
- 変更率
- printSummary
- passLoadTo
私の問題は、オブジェクトを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 に追加した負荷が出力されることです。