连接2个班级

时间:2014-01-27 06:29:13

标签: java

我有一个学生对象课,我必须创建这些学生的arraylist。 我试图创建将信息输入到学生对象中的程序,然后将其存储到arraylist中。

此数组的第一个命令是将一个学生对象添加到数组中,下一个命令是从数组中删除一个学生。

我如何让用户输入命令然后转到另一种导致存储信息的方法,如果我每次尝试编译时都会出现静态错误。

import java.util.Scanner;
import java.util.ArrayList;

public class CollegeTester
{
Scanner input = new Scanner(System.in);
ArrayList<Student> array = new ArrayList<Student>();
CollegeTester collegeTester = new CollegeTester();;

public static void  main(String[] args)
{
    new CollegeTester().getCommand();
}

public void getCommand()
{
    System.out.println("Enter a command: ");
    String command = input.nextLine();
    if(command.equals("add"))
        collegeTester.addCommand();
}

public void addCommand()
{
    System.out.println("Enter a Name: ");
    String name = input.nextLine();
}

}

2 个答案:

答案 0 :(得分:0)

还有另一个漏洞。你的主要方法不是静态的。没有它你的程序将无法运行。将其更改为

public static void main(String[] args)
{

}

此外,您无法直接从静态方法访问非静态方法。 您应该实例化类,然后调用方法或使方法静态。

 public static void main(String[] args){
 CollegeTester collegeTester = new CollegeTester();
 collegeTester.addCommand();
 }

如果您想针对特定选项调用特定方法,则应使用switch case

答案 1 :(得分:0)

您正尝试从静态方法访问非静态方法。首先创建一个CollegeTester类的实例,而不是调用它。例如:

import java.util.ArrayList;
import java.util.Scanner;

public class CollegeTester {
    private Scanner input = new Scanner(System.in);
    private ArrayList<Student> array = new ArrayList<Student>();

    public static void main(String[] args) {
        new CollegeTester().getCommand();
    }

    public void getCommand() {
        System.out.println("Enter a command: ");
        String command = input.nextLine();
        if (command.equals("add"))
            this.addCommand();
    }

    public void addCommand() {
        System.out.println("Enter a Name: ");
        String name = input.nextLine();
    }
}

public class Student {
    // Some properties and fty.
}