我想知道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() );
}
}
感谢您的帮助!
你问的问题很不清楚。但我会尽力帮助你。
目标是在每个钱包中添加金额,然后打印 结果。
- 在
Wallet
课上有一个用于dollar
的getter和setter方法。以便您稍后可以在程序中使用它们。 - 总和法
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;
}
这样,当您调用该方法时,它会获得所有钱包中的美元总和并返回您。