【问题标题】:Class with an ArrayList inside里面有一个 ArrayList 的类
【发布时间】:2018-08-17 08:05:54
【问题描述】:

我是编程新手,我需要一些帮助。

我想创建一个可以添加姓名、年龄和多个电话号码(在某些情况下为 1,在其他情况下为 4,等等)的课程,然后显示所有信息。

我不想通过为 ArrayList 创建另一个类来实现它, 我想在这门课里做这一切,我想这很简单,但我想不通,也没有找到我想要的解决方案。

我能做些什么呢? thx提前,第一次发布如果我做错了什么,请告诉我。

import java.util.ArrayList;

public class Athlete
{

    private String name;
    private int age;
    private ArrayList<String> phones = new ArrayList();

    public Athlete(String name, int age)
    {
        this.name = name;
        this.age = age;

    }

    public int getAge()
    {
        return age;
    }

    public void setAge(int age)
    {
        this.age = age;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public ArrayList<String> getPhones()
    {
        return phones;
    }

    public void setPhones(ArrayList<String> phones)
    {
        this.phones = phones;
    }

    @Override
    public String toString()
    {
        return "Athlete{" + "name=" + name + ", age=" + age + ", phones=" + phones + '}';
    }
}

【问题讨论】:

  • 我不明白您发布的代码有什么问题。 “我想创建一个可以添加姓名、年龄和多个电话号码的课程”你的代码中已经有了所有这些。一个字符串代表姓名,一个 int 代表年龄,一个列表代表数字。
  • 你的代码看起来不错,你的问题是什么?
  • 从任何地方调用此类时遇到的任何错误?
  • @RyanWilson 是的。
  • @RyanWilson 使用 + 运算符时会自动发生这种情况。

标签: java class oop arraylist


【解决方案1】:

您可以为 PhoneList 创建一个内部类并使用该类型,而不是直接使用 ArrayList。

public class Athlete
{

    private String name;
    private int age;
    private PhoneList phoneList;

    public Athlete(String name, int age)
    {
        this.name = name;
        this.age = age;
        phoneList = new PhoneList();

    }

    public int getAge()
    {
        return age;
    }

    public void setAge(int age)
    {
        this.age = age;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }
    // Maybe just return the toString (or a read only list)
    public PhoneList getPhones()
    {
        return phoneList;
    }

    publicvoid addPhone(String phone)
    {
        phoneList.add(phone);
    }


    @Override
    public String toString()
    {
        return "Athlete{" + "name=" + name + ", age=" + age + ", phones=" + phoneList + '}';
    }

    private class PhoneList
    {
        private ArrayList<String> list = new ArrayList<String>();

        private void add(String phone)
        {
            list.add(phone);
        }

        @Override
        public String toString()
        {
            StringBuffer b = new StringBuffer(32);

            for (String ph : list)
            {
                b.append(ph + "\n"); // Or something
            }

            return b.toString();
        }
    }

}

【讨论】:

    猜你喜欢
    • 2017-12-15
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多