2014-11-27 4 views
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 Я понятия не имею, как мне изменить мои коды, чтобы решить эту проблему проблема, потому что кажется, что мне не нужно иметь основной метод.Как вернуть значение 2D-массива в java

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-приложения. Этот метод является точкой входа приложения. – ortis

+0

Что ожидается, когда вы попытаетесь запустить программу? – ApproachingDarknessFish

+0

Для запуска вашей программы вам нужен «основной» метод. Если это единственный класс, который у вас есть, он должен иметь основной метод, так как ... ну ... главный метод должен существовать в основном классе. Единственный существующий класс всегда является основным классом –

ответ

0

Видимо проблема не связана с типом возвращаемого getS но проект установки ожидает SArray иметь точку входа приложения.

0

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

+0

Я попытался поместить этот 'SIBORArray a = новый SIBORArray;'. но это не сработает. – HiWorld

0

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

определяют как

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

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

0

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

public static main(String[] args) 

Лучше проверить this page, прежде чем делать что-нибудь с классом.

0

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

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

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

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 не знает, с чего начать. Вы должны добавить это в свой код, и ваш код должен войти в основной метод. Кроме того, вы должны добавить ключевое слово статического для всех функций т.е. public static double[][] getS()

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

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

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

Смежные вопросы