Getter 在其他类中不可见

学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

//etc

public 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();

小怪兽爱吃肉
浏览 111回答 3
3回答

梦里花落0921

您只是对数组访问有问题:而不是使用:public void printArray() {&nbsp; &nbsp;for (int i = 0; i < list.size(); i++) {&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(i + " : " + " NAME: " + list.getName(i) ...);&nbsp; &nbsp;}}你应该使用:public void printArray() {&nbsp; &nbsp;for (int i = 0; i < list.size(); i++) {&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(i + " : " + " NAME: " + list.get(i).getName() ...);&nbsp; &nbsp;}}因为您想获取特定元素的名称,而在 OO 语言中,这通常意味着调用对象本身的方法。在您的示例中,您有一个列表,其中包含包含名称的对象。所以如果你想从列表中访问名字,你需要先获取一个元素,然后获取他的名字。HTH。

互换的青春

要遍历您的列表,请使用for (int i = 0; i < list.size(); i++) {&nbsp; &nbsp; Positions p = list.get(i);&nbsp; &nbsp; System.out.println(i + " : " + " NAME: " + p.getName() + " AGE: " + p.getAge() + " ID: " + p.getID());}或者int index =0;for (Positions p : list) {&nbsp; &nbsp; System.out.println(index++ + " : " + " NAME: " + p.getName() + " AGE: " + p.getAge() + " ID: " + p.getID());}

大话西游666

尝试使用以下代码更改方法。希望它会有所帮助。public void printArray() {&nbsp; &nbsp; &nbsp; &nbsp; for (int i = 0; i < list.size(); i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(i + " : " + " NAME: " + list.get(i).getName() + " AGE: " + list.get(i).getAge() + " ID: " list.get(i).getID());&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java