【问题标题】:Initializing array of class type in for loop [closed]在for循环中初始化类类型的数组[关闭]
【发布时间】:2022-11-16 08:22:12
【问题描述】:

我试图将值放入“帐户”数组中,但无法使其正常工作。

给定以下数据结构:

public class Account
{
  private int account;
  private String firstName;
  private String lastName;
  private double balance;
}
  1. a) 声明一个包含 5 个元素的帐户数组。

    b) 编写一个循环来初始化所有元素。他们都属于约翰·琼斯。他的第一个帐户包含 10.00 美元,第二个帐户包含 20.00 美元, 等等。

    1a 已完成,但 1b 我需要帮助。这是我的代码。

    import java.util.Arrays;
    
    public class Main {
        public static void main(String[] args) {
    
            Account[] arr = new Account[5];
            int value =0;
            Account obj = new Account();
            obj.setFirstName("John");
            obj.setLastName("Jones");
    
    
            for(int i = 0; i< arr.length;i++)
            {
                value = (i+1) *10;
                arr[i] = value;
    
            }
    
    
        }
    }
    
    public class Account {
        private int account;
        private String firstName;
        private String lastName;
        private double balance;
    
        public int getAccount(){return account;}
        public String getFirstName(){return firstName;}
        public String getLastName(){return lastName;}
        public double getBalance(){return balance;}
    
        public void setAccount(int account) {
            this.account = account;
        }
        public void setFirstName(String firstName){
            this.firstName = firstName;
        }
        public void setLastName(String lastName){
            this.lastName = lastName;
        }
        public void setBalance(double balance){
            this.balance = balance;
        }
    }
    

    因为它现在行

    arr[i] = value;
    

    不能工作,因为值必须是帐户类型。

【问题讨论】:

  • 你的问题是什么?您已经确定了问题所在:value 是一个整数,并且处于期待 Account 的位置。您需要将 Account 分配给该数组位置,而不是整数。在我看来,您已经知道出了什么问题。

标签: java


【解决方案1】:

将对象分配给数组,而不是整数

    for(int i = 0; i< arr.length;i++) {
        Account obj = new Account();
        obj.setAccount(i + 1);
        obj.setFirstName("John");
        obj.setLastName("Jones");
        obj.setBalance(obj.getAccount() * 10);
        arr[i] = obj;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多