繁体   English   中英

我可以使用类中的 public void 在 ArrayList 中使用它来添加年龄和名称吗?

[英]Can I use public void from a class to make use of it in ArrayList to add age and name?

我是 Java 新手,我正在努力了解构造、类和对象。 如果您觉得这些中的任何一个很愚蠢,我深表歉意。

我的任务是创建一个 ArrayList 来保存 Data 类型的项目(我的班级)。 使用 .add 方法 - 我应该添加一定数量的姓名和年龄然后输出。

我已经完成了,但我想知道我是否可以使用类中的 SetAge 和 SetAge 等函数在我的 ArrayList 中使用来创建一个新人,然后像其他人一样将其输出。 还有其他方法吗?

感谢您的帮助和解释。

下面是我的代码;

import java.util.ArrayList;

public class workingOn {

public static void main (String[] args)
{
    Data Fred = new Data("Fred", 21);
    Data Jo = new Data("Jo", 43);
    Data Zoe = new Data("Zoe", 37);

    ArrayList<Data> myArray = new ArrayList<Data>();

    myArray.add(Fred);
    myArray.add(Jo);
    myArray.add(Zoe);

    for (Data temp : myArray) 
    {
    System.out.println(temp.toString()); 
    }


}
}

下面是我的课;

    public class Data { 

    private String name;
    private int age;

    Data(String n,int a)
    {
        name = n;
        age = a;
    }
    public String GetName()
    {
        return(name);
    }
    public void SetName(String n)
    {
        name = n;
    }
    public int GetAge()
    {
        return(age);
    }
    public void SetAge(int a)
    {
        age = a;
    }
    public void Print()
    {
        System.out.print(("("+ GetName() ));
        System.out.print(",");
        System.out.print(GetAge());
        System.out.print(") ");
    }

    //i made this so I don't output the object id
    public String toString() {
        return (name + ", " +  age);


    }
    }

通过评论,我猜您想以某种方式为您设计的类使用 setter 方法(setName() 和 setAge())。 最简单的方法是:

Data d = new Data("tempName", 10);
myArray.add(d);

这基本上创建了一个 Data 类型的对象并将其添加到数组列表中。 假设您要更改刚刚添加的此人的姓名和年龄,那么您应该这样做:

myArray.get(myArray.size() - 1).setName("newName");
myArray.get(myArray.size() - 1).setAge(18);

添加一些解释,当您将对象添加到数组列表时,它总是添加到最后。 我们使用size()方法来获取 Arraylist 中对象的数量。 由于索引从 0 开始,我们使用myArray.size() - 1 我们使用.get()方法从 arraylist 中检索对象,该对象将一个数字作为参数并返回该索引处的对象。

结合这两者,我们在最后一个可能的索引处获取对象,并在其上调用setName()setAge()函数。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM