如何打印出第二个主方法中的ArrayList?

时间:2016-11-28 03:51:28

标签: java arraylist

我被要求创建两个主要方法,第二个main方法包含一个我需要打印出来的ArrayList。程序只调用第一个main方法,所以我认为我需要从那里调用ArrayList。因为第二个ArrayList包含在main方法中,所以我不能创建一个etter方法,我可以使用它来调用该方法,所以我对如何调用该ArrayList并将其打印出来感到困惑。

以下是相关代码:

第二主要方法

import java.util.ArrayList;
public class Demo {

    public static void main(String[] args) {
        ArrayList<Animal> animalGroup = new ArrayList<>();

        animalGroup.add(new Wolf("Sam", 5));
        animalGroup.add(new Parrot("George", 3));
        animalGroup.add(new Wolf("Wesley", 7));
        animalGroup.add(new Parrot("Pat", 10));

    }

}

第一主要方法

    public class Main {

        public static void main(String[] args) {

            Demo.main(args); // populate the ArrayList in Demo Class main method 2.
    ArrayList<Animal> animalGroup = Demo.animalGroup; // Retrieve the ArrayList in Demo class.
System.out.println(animalGroup);     
        }
    }

所需的输出

 Sam, 5
 George, 3
 Wesley, 7
 Pat, 10

鹦鹉课

  public class Parrot extends Omnivore
    {   

        private final int age;
        private final String name;

    Parrot(String name, int age)   
    {
        this.age = age;
        this.name = name;
    }     
    Parrot(int i)   
    {
        this("Polly", i);
    }  

        public String getName() 
        {
            return name;
        }
        public int getAge() 
        {
            return age;
        }

    }

动物

abstract public class Animal implements Comparable<Animal>
{

    int age;
    String name;
    String noise;

Animal(String name, int age)   
{
    this.age = age;
    this.name = name;
} 

Animal()
{

  this("newborn", 0);
}

public String getName() {
        return name;
    }
  public int getAge()
    {
        return age;
    }

    public void setName(String newName) {
        name = newName;
    }

}

必须以这种方式设计程序,因为我的任务坚持创建第二个主要方法,该方法具有此ArrayList。任何有关如何输出ArrayList属性的帮助都将非常感谢,谢谢。

2 个答案:

答案 0 :(得分:2)

您可以调用属于另一个类的主方法,如下所示

ClassName.main(args);

更改您的主要课程,如下所示

public class Main {
    public static void main(String[] args) 
    {
        Demo.main(args);
    }
}

您可以在Demo Class的main方法中打印数组列表,否则如果要从Main类打印它,则必须使ArrayList可用于Class main

答案 1 :(得分:1)

进行此类更改:
第二主要方法:

import java.util.ArrayList;
public class Demo {
    public static ArrayList<Animal> animalGroup; // make this an instance static variable to access in other class with main method;

    public static void main(String[] args) {
    animalGroup = new ArrayList<>();

    animalGroup.add(new Wolf("Sam", 5));
    animalGroup.add(new Parrot("George", 3));
    animalGroup.add(new Wolf("Wesley", 7));
    animalGroup.add(new Parrot("Pat", 10));

    }

}

第一主要方法:

public class Main {

    public static void main(String[] args) {

    Demo.main(args); // populate the ArrayList in Demo Class main method 2.
    ArrayList<Animal> animalGroup = Demo.animalGroup; // Retrieve the ArrayList in Demo class.
    for(Animal animal : animalGroup) {
         System.out.println(animal.getName()+","+animal.getAge());
    }
}
}

我无法看到你的其他课程,但如果它有帮助就试试。