Java 中的对象到对象通信是如何工作的?

问题描述 投票:0回答:1

我是Java学习新手,刚刚完成方法讲座。我正在做作业,我需要编写汇款服务程序。我有两个类,第一个是CurrencyConverter,第二个是MoneyTransferService,它使用CurrencyConverter 类的功能。在 MoneyTransferService 类中,我有一个 main 方法,在该方法中创建了一个 MoneyTransferService 对象,该对象又使用 CurrentConverter 对象提供的服务。我不明白对象之间如何通信?

当我使用注释代码运行程序时,效果很好,但我不明白为什么我必须创建一个将使用另一个对象提供的服务的对象?

MoneyTransferService 类 {

public static void main(String[] args) {
    
            CurrencyConverter cc = new CurrencyConverter(); 

            /*double amount = cc.computeTransferAmount(0, 1000);                
           
            double fee = cc.computeTransferFee(0, 1000);
            
            System.out.println("Transfer Amount: " + amount);

            System.out.println("Transfer Fee: " + fee);*/
            
            

            
            MoneyTransferService transferService = new MoneyTransferService();
            
            

            double transferAmount = transferService.computeTransferAmount(0, 1000);

            double transferFee = transferService.computeTransferFee(0, 1000);

            System.out.println("Transfer Amount: " + transferAmount);

            System.out.println("Transfer Fee: " + transferFee);
            
            
}  

}

公共类货币转换器{

    // Currency exchange rates of different currencies relative to 1 US dollar

   double[] exchangeRates = new double[] {63.0, 3.0, 3.0, 595.5, 18.0, 107.0, 2.0};



   void setExchangeRates(double[] rates) {

         exchangeRates = rates;

    }

    void updateExchangeRate(int countryIndex, double newVal) {

         exchangeRates[countryIndex] = newVal;

    }



    double getExchangeRate(int countryIndex) {

        return exchangeRates[countryIndex];

    }

    double computeTransferAmount(int countryIndex, double amount) {

        return amount * getExchangeRate(countryIndex);

    }
    
    double computeTransferFee (int countryIndex, double amount) {
        
        return computeTransferAmount(countryIndex, amount) * 0.02;
        
    }



    void printCurrencies() {

         System.out.println("\nrupee: " + exchangeRates[0]);

         System.out.println("dirham: " + exchangeRates[1]);

         System.out.println("real: " + exchangeRates[2]);

         System.out.println("chilean_peso: " + exchangeRates[3]);

         System.out.println("mexican_peso: " + exchangeRates[4]);

         System.out.println("_yen: " + exchangeRates[5]);

         System.out.println("$australian: " + exchangeRates[exchangeRates.length-1]);

   }

}

java arrays oop variables methods
1个回答
0
投票

您正在使用 transferService 实例访问 computeTransferAmountcomputeTransferFee 方法。
这些方法在 CurrencyConverter 类中定义,可以通过您创建的 cc 实例进行引用。

double transferAmount = cc.computeTransferAmount(0, 1000);
double transferFee = cc.computeTransferFee(0, 1000);
© www.soinside.com 2019 - 2024. All rights reserved.