有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java连接2个类

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

这个数组的第一个命令是向数组中添加一个student对象,下一个命令是从数组中删除一个student对象

如果每次我试图编译时都会出现静态错误,那么如何让用户输入命令,然后转到另一种方法来存储信息呢

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) 个答案

  1. # 1 楼答案

    您正在尝试从静态方法访问非静态方法。首先创建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.
    }
    
  2. # 2 楼答案

    还有一个漏洞。你的主要方法不是静态的。没有它,程序将无法运行。换成

    public static void main(String[] args)
    {
    
    }
    

    此外,您不能直接从静态方法访问非静态方法。 要么实例化类,然后调用方法,要么使方法成为静态的

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

    如果您想在特定选项上调用特定方法,那么应该使用switch case