Как вернуть значение 2D-массива в Java

1

У меня есть класс массива, как показано ниже, когда я запускаю программу, он дает мне это сообщение об ошибке: Error: Main method not found in class SArray, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application Я понятия не имею, как мне изменить мои коды для решения этой проблемы, так как кажется, что мне не нужен основной метод.

public class SArray {
    public void setS(double[] S) {}

    public SArray(double[] S) {
        super();
    }

    public double[][] getS(){

        double[ ][ ] S =  {{ x,x,x}, { x,x,x},{ x,x,x}};
        for(int x = 0; x<S.length; x++){ 
            for(int y = 0; y<S[x].length; y++){
                System.out.println(S[x][y]); 
            } 
        }
        return S;
    }
}
  • 0
    Сообщение об ошибке довольно ясно: вы должны написать main метод для запуска автономного Java-приложения. Этот метод является точкой входа в приложение.
  • 0
    Что происходит, когда вы пытаетесь запустить программу?
Показать ещё 3 комментария
Теги:
arrays
return-value

6 ответов

0

Ваша проблема заключается в том, что вы смешиваете класс драйвера и класс. Я имею в виду, что в вашем конструкторе вы написали super(); который используется, когда ваш класс является дочерним классом другого, в этом случае вы должны определить родительский класс в начале кода, используя ключевое слово extends. Если вы расширяете другой класс, вы должны использовать ключевое слово super() внутри вашего конструктора, чтобы получить конструктор из вашего родительского класса, связав их таким образом. Например, вы говорите, что public class SArray extends InsertParentsClassName. В конце концов вам все равно понадобится класс драйвера для запуска вашего кода, в котором вы будете использовать другие классы, созданные вами как объекты. Класс драйвера обычно тот, который имеет основной метод. Поэтому, если это не ваш класс драйвера, вы можете создать другой класс, который имеет основной метод и создаст в нем объекты SArray.

public class DriverClass{
     //This is only a rough draft of what it might look like
     SArray array = new SArray();
     public static void main(String [] args){
          //As you can see you can use the functions in SArray class here.
          array.getS();
     }
}

С другой стороны, если это ваш класс драйвера, вы пытаетесь запустить код без основного метода. Это невозможно, потому что Java не знает, с чего начать. Вы должны добавить это в свой код, и ваш код должен войти в основной метод. Кроме того, вы должны добавить ключевое слово static во все свои функции, то есть public static double[][] getS()

public static void main(String[] args){//Insert your code here}

Здесь будет выполняться ваш код.

Я предлагаю вам вернуться к более базовым материалам, потому что именно здесь Java начинает становиться более продвинутым, и если вы не хорошо разбираетесь в основах, вы не сможете добиться успеха позже.

0

Если вы хотите, чтобы ваш код работал, Java должна знать, с чего начать. Иначе ничего не происходит

определить как

public static void main(String[] args) {
    //whatever you want to do
}

Как еще можно узнать, с чего начать Java?

0

У вас должен быть main метод
Вы можете определить его в своем классе, создать new SArray() и вызвать getS() или создать новый класс и разместить там main метод

  • 0
    Я попытался поместить этот SIBORArray a = new SIBORArray; , но это не работает
0

Java-приложение нуждается в методе main, знак которого следующий:

public static main(String[] args)

Вам лучше проверить эту страницу, прежде чем делать что-либо с вашим классом.

0

JVM fisrt ищет точку входа (основной метод) в программе. поэтому в вашем проекте должен быть по крайней мере один основной метод. В противном случае он не запускается

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

В вашем примере, который вы создали, главный constructor не может содержать constructors. удалите конструктор и запустите или создайте еще один класс и разместите там свой основной класс и создайте экземпляр этого класса.

0

По-видимому, проблема не связана с возвращаемым типом getS но при настройке проекта SArray должен иметь точку входа приложения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню