是否可以在 Java 中将构造函数从一个类调用到另一个类,并执行数学运算并返回其结果



我想知道Java是否允许你从不同的类调用构造函数,并对其执行数学运算。并在主类中返回其结果。

例如,我有

public class Wallet {
private int dollar;
public Wallet(int dollar){
this.dollar = dollar;
}

我也有

public class Count {
private int counter;
private ArrayList<Wallet> wallet;
public Count(){
       this.wallet = new ArrayList<Wallet>();
}
public void addWallets(Wallet dollar) {
       this.wallet.add(dollar);
    }
public int sum(){
return 0;}

现在,我的目标是添加每个钱包中的金额,然后打印结果。这是主类。

public class Main {
public static void main(String[] args) { 
Count count = new Count();
Wallet wallet1 = new Wallet(34);
Waller wallet2 = new Wallet(26);
count.addWallets(wallet1);
count.addWallets(wallet2);
System.out.println( "Total is: " + count.sum() );
 }
 }

感谢您的帮助!

你问的问题很不清楚。但我会尽力帮助你。

目标是在每个钱包中添加金额,然后打印 结果。

  1. Wallet课上有一个用于dollar的getter和setter方法。以便您稍后可以在程序中使用它们。
  2. 总和法 sum 来自每个Wallet的美元。

这是解决方案:

import java.util.ArrayList;
    public class Main {
    public static void main(String[] args) {
        Count count = new Count();
        Wallet wallet1 = new Wallet(34);
        Wallet wallet2 = new Wallet(26);
        count.addWallets(wallet1);
        count.addWallets(wallet2);
        System.out.println("Total is: " + count.sum());
    }
}
class Count {
    private int counter;
    private ArrayList<Wallet> wallet;
    public Count() {
        this.wallet = new ArrayList<Wallet>();
    }
    public void addWallets(Wallet dollar) {
        this.wallet.add(dollar);
    }
    public int sum() {
        int sum = 0;
        for(Wallet w : wallet) {
            sum += w.getDollar();
        }
        return sum;
    }
}
class Wallet {
    private int dollar;
    Wallet(int dollar){
    this.dollar = dollar;
    }
    public int getDollar() {
        return dollar;
    }
    public void setDollar(int dollar) {
        this.dollar = dollar;
    }
}

在 sum() 方法中,您可以创建钱包类的对象,例如钱包 wt=new Wallet(10),它将在内部调用钱包的构造函数,但无法显式调用。您可以使用此和超级关键字调用超类和同一类。

我想

你误解了列表的工作。

当您运行以下代码时,

count.addWallets(wallet1);
count.addWallets(wallet2);

它将钱包 1 和钱包 2 添加到计数ArrayList<Wallet> wallet作为两个单独的元素。

当您调用 count.sum() 时,该方法将始终根据您的方法声明返回 0。如果要在调用该方法时获取所有元素的总和,请尝试按如下所示声明该方法:

public int sum(){
    int total =0;
    for(int i=0;i< wallet.size();i++){
         total = total + wallet.get(i).getDollar();
    }
    return total;
}

并在您的钱包类中添加二传手和二传手作为美元

public int getDollar() {
    return dollar;
}
public void setDollar(int dollar) {
    this.dollar = dollar;
}

这样,当您调用该方法时,它会获得所有钱包中的美元总和并返回您。

相关内容

最新更新