将值存储在对象数组中,但在2个方法中使用Java

时间:2015-05-20 01:52:14

标签: java arrays object

myAccount[0] = new Calculations(firstName, lastName, pin);

myAccount[0] = new Calculations(totalBalance);

您好!我一直在练习一系列物体,但我遇到了一个问题。我有2个班级(驾驶和计算)。上面两行代码都在驱动器类中,但有两种不同的方法。在第一种方法中,我有第一行代码,在第二种方法中,我有第二行代码。我试图将所有4个存储在第一个索引中,但我想totalBalance会覆盖firstName,lastName和pin,我认为这是有道理的。所以我想问题是如果我需要使用单独的方法,如何在第一个对象中存储多个值?另外,如果您想知道为什么我不能在一种方法中完成所有操作,那是因为我想在一个面板中只显示firstName,lastName和pin,然后全部4在另一个面板中(firstName,lastName和pin显示为null,而totalBalance显示正确的输出,这就是我认为第二行代码覆盖第一行的原因)。提前谢谢!

3 个答案:

答案 0 :(得分:1)

您仍应使用所有4个参数实例化Calculations对象,并且只有两种不同的显示方法:

  
      
  1. 一种仅显示firstName,secondName和pin
  2. 的显示方法   
  3. 一种显示所有4个字段的显示方法。
  4.   
public static void main(String[] args) throws Exception {
    Calculations[] myAccounts = new Calculations[5];

    myAccounts[0] = new Calculations("John", "Doe", 1234, 100.00);
    System.out.println("Summary");
    System.out.println(myAccounts[0].DisplaySummary());

    System.out.println("Full Info");
    System.out.println(myAccounts[0].DisplayFull());   
}

public static class Calculations {
    String firstName = null;
    String lastName = null;
    int pin = 0;
    double totalBalance = 0;
    DecimalFormat formatter;

    public Calculations(String fn, String ln, int p, double tb) {
        firstName = fn;
        lastName = ln;
        pin = p;
        totalBalance = tb;

        formatter = new DecimalFormat("#,###.00");
    }

    public String DisplaySummary() {
        return String.format("First Name: %s\r\nLast Name: %s\r\nPin: %d\r\n", firstName, lastName, pin);
    }

    public String DisplayFull() {
        return DisplaySummary() + "Total Balance: $" + formatter.format(totalBalance);
    }
}

结果:

enter image description here

答案 1 :(得分:0)

您可以创建 setter getter 方法,这样您就可以安全地正确设置值。

示例:

public class Calculations {
    String firstName = null;
    String lastName = null;
    int pin = 0;
    int totalBalance = 0;

    public Calculations(String fn, String ln, int p) {
         firstName = fn;
         lastName = ln;
         pin = p;
    }

    public void setTotalBalance(int total) {
         totalBalance = total;
    }

    public int getTotalBalance() {
         return totalBalance;
    }
}

之后你可以这样做:

myAccount[0] = new Calculations(firstName, lastName, pin);

myAccount[0].setTotalBalance(totalBalance);

希望这有帮助。

答案 2 :(得分:0)

要在第一个索引或数组中的任何索引中存储多个值,您可以拥有多维数组。例如

myAccount[0][0] = new Calculations(firstName, lastName, pin);

myAccount[0][1] = new Calculations(totalBalance);

这将初始化为Calculations myAccount[][] = new Calculations[amount][2];