несколько классов в Dr. Java - PullRequest
       16

несколько классов в Dr. Java

0 голосов
/ 13 декабря 2018

JDK-компилятор говорит, что он компилируется, но при запуске я получаю эту ошибку:

Статическая ошибка: у этого класса нет статического основного метода void, принимающего String [].

Я привык помещать класс моих методов в один файл и помещать основной класс в отдельный файл.

Как мне решить эту проблему?

    import java.util.Scanner;

public class Test{
  private final int classSize = 35;
  private int numEnrolled, numNeeded; 

  public void Input(){
   Scanner in = new Scanner(System.in);
   System.out.println("Enter the amount enrolled in your class");
   numEnrolled = in.nextInt();
   System.out.println("Your input is " + numEnrolled);       

   // Other parts of code that needs to be coded 
  }
}

class testRunner{
  static void main(String args[]){
    Test newTest = new Test();
    newTest.Input();

 }}

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Изменение:

class testRunner{
  static void main(String args[]){
    Test newTest = new Test();
    newTest.Input();

 }}

на:

public class testRunner {
  public static void main(String args[]) {
    Test newTest = new Test();
    newTest.Input();
}}

main() всегда должно быть объявлено public

0 голосов
/ 13 декабря 2018
  • В одном файле вы можете иметь только один публичный класс и несколько закрытых классов
  • Ваше имя файла должно совпадать с единственным публичным классом
  • Чтобы сделать ваш класс работоспособнымон должен содержать метод public static void main (String args []) , предпочтительно в общедоступном классе

Ваш TestRunner.java должен выглядеть следующим образом

class Test{
    private final int classSize = 35;
    private int numEnrolled, numNeeded;

    public void Input(){
        Scanner in = new Scanner(System.in);
        System.out.println("Enter the amount enrolled in your class");
        numEnrolled = in.nextInt();
        System.out.println("Your input is " + numEnrolled);

        // Other parts of code that needs to be coded
    }
}

public class TestRunner{
    public static void main(String args[]){
        Test newTest = new Test();
        newTest.Input();

    }}

Редактировать: Если вы хотите оставить имя файла Test.java, это тоже работает:

public class Test {
    private final int classSize = 35;
    private int numEnrolled, numNeeded;

    public void Input() {
        Scanner in = new Scanner(System.in);
        System.out.println("Enter the amount enrolled in your class");
        numEnrolled = in.nextInt();
        System.out.println("Your input is " + numEnrolled);

        // Other parts of code that needs to be coded
    }
}

class TestRunner {
    public static void main(String args[]) {
        Test newTest = new Test();
        newTest.Input();

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...