簡體   English   中英

對象傳遞給java中的方法

[英]Object passed to the method in java

我試着模擬一部手機。 我創建了以下方法:

  1. 加載
  2. 呼叫
  3. sendTextMessage
  4. 的getLoad
  5. getTotalMinutesCalled
  6. changeRate
  7. printSummary
  8. 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的負載

你的主要問題是:

 if(credit > amount) {

您正在檢查信用額度是否大於金額,但您只需加載30並支出30,這將失敗(30 > 30)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM