为了账号安全,请及时绑定邮箱和手机立即绑定

Getter 在其他类中不可见

Getter 在其他类中不可见

小怪兽爱吃肉 2022-06-30 10:24:06
学Java一周了,现在遇到一个问题,因为想打印方法printArray中的所有Arraylist,但是方法看不到getName()等方法不知道怎么解决问题。非常感谢你的帮助。如果可以的话,请告诉我我做错了什么。班级职位:  public class Positions {        List<Positions> list = new ArrayList<>(15);        int ageAdd;        int IDAdd;        String nameAdd;        int counter;        String name;        int age;        int ID;        public Positions(String name, int age, int ID) {            this.name = name;            this.age = age;            this.ID = ID;        }        public Positions() {            this("", 0, 0);        }//there are methods://adding element//removing element//changing values//etcpublic String getName() {        return name;    }    public int getAge() {        return age;    }    public int getID() {        return ID;    }    public void printArray() {        for (int i = 0; i < list.size(); i++) {            System.out.println(i + " : " + " NAME: " + list.getName(i) + " AGE: " + list.getAge(i) + " ID: " list.getID(i));        }    }主要课程:public class ArrayList2{    public static void main (String[] args)    {        Positions p = new Positions();        System.out.println("----LISTA TABLICOWA-----");        System.out.println("Co chcesz wykonać? ");        System.out.println("1. Dodac element do listy. ");        System.out.println("2. Usunac elemnt z listy.");        System.out.println("3. Wstawić na dowolna pozycje.");        System.out.println("4. Rozmiar listy.");        System.out.println("5. Zmienic wartosc na podanym indeksie.");        System.out.println("6. Wyświetlić listę. ");       while(true) {           System.out.println("podaj pozycję: ");           Scanner ch = new Scanner(System.in);           int choice= ch.nextInt();
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

您只是对数组访问有问题:


而不是使用:


public void printArray() {

   for (int i = 0; i < list.size(); i++) {

       System.out.println(i + " : " + " NAME: " + list.getName(i) ...);

   }

}

你应该使用:


public void printArray() {

   for (int i = 0; i < list.size(); i++) {

       System.out.println(i + " : " + " NAME: " + list.get(i).getName() ...);

   }

}

因为您想获取特定元素的名称,而在 OO 语言中,这通常意味着调用对象本身的方法。


在您的示例中,您有一个列表,其中包含包含名称的对象。所以如果你想从列表中访问名字,你需要先获取一个元素,然后获取他的名字。


HTH。


查看完整回答
反对 回复 2022-06-30
?
互换的青春

TA贡献1797条经验 获得超6个赞

要遍历您的列表,请使用


for (int i = 0; i < list.size(); i++) {

    Positions p = list.get(i);

    System.out.println(i + " : " + " NAME: " + p.getName() + " AGE: " + p.getAge() + " ID: " + p.getID());

}

或者


int index =0;

for (Positions p : list) {

    System.out.println(index++ + " : " + " NAME: " + p.getName() + " AGE: " + p.getAge() + " ID: " + p.getID());

}


查看完整回答
反对 回复 2022-06-30
?
大话西游666

TA贡献1817条经验 获得超14个赞

尝试使用以下代码更改方法。希望它会有所帮助。


public void printArray() {

        for (int i = 0; i < list.size(); i++) {

            System.out.println(i + " : " + " NAME: " + list.get(i).getName() + " AGE: " + list.get(i).getAge() + " ID: " list.get(i).getID());



        }

    }


查看完整回答
反对 回复 2022-06-30
  • 3 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信