2016-11-03 2 views
1

Я только начал Java курс в колледже, я пытаюсь понять концепцию OOPs, так что я написал эту программу:NetBeans - Не удается найти основной класс

package Lamp; 
import java.util.*; 

    public class Lamp { 
    public Scanner input= new Scanner(System.in); 
     boolean state; 
     String color; 

     public Lamp() { 
      state = false; 
      color = "Blue"; 
     } 

     public boolean toggleState() { 
      if (state == false) { 
       state = true; 
      } 
      if (state == true) { 
       state = false; 
      } 
      System.out.println("State is now: " +state); 
      return state; 
     } 

     public String chooseColor(){ 
      System.out.println("Please choose a new color"); 
      color= input.nextLine(); 
      System.out.println("Color is now: " +color); 
      return color; 
     } 

     void main(){ 
     Lamp L1= new Lamp(); 
     System.out.println("State is now: " +state); 
     System.out.println("Color is now: " +color); 

     L1.toggleState(); 
     L1.chooseColor(); 

     System.out.println("State is now: " +state); 
     System.out.println("Color is now: " +color); 

     } 
    } 

Проблема заключается в том, что каждый раз, когда я пытаюсь для запуска программы NetBeans говорит, что он не может найти основной класс, который является Lamp.Lamp Я использую концепцию packagename.classname, но он сохраняет то же самое.

Заранее благодарен!

+3

У вашей «основной» неправильная подпись. Это должно быть 'public static void main (String [] args)'. См. Https://docs.oracle.com/javase/tutorial/getStarted/application/ – bradimus

ответ

0

Возможно, это аналогичная проблема?

Netbeans - Error: Could not find or load main class

очистки Try и перекомпиляции проекта. Иногда старая версия программы застревает в кеше, а новая не может работать.

Также попробуйте добавить общедоступную декларацию public static void main(String[] args) к основному методу в конце вашей программы и посмотреть, поможет ли это.

+1

'Также попробуйте добавить публичную декларацию ...', ну это должна быть первая строка вашего ответа на самом деле;) Это поможет – AxelH

2
void main(){ 

должен быть изменен на

public static void main(String[] args) { 

public делает его видимым.

static позволяет вызвать метод без создания объекта в первую очередь.

Объяснение, почему это требуется в link упомянутой @bradimus

+1

Неа. 'public static void main()' неверен. Попробуйте 'public static void main (String [] args)' – bradimus

+1

Спасибо! Я видел ваш комментарий к сообщению сразу после того, как я отправил свой ответ. Добавлена ​​ссылка на ответ! – dubes

0

правой кнопкой мыши проект -> нажмите на свойства -> выберите команду Выполнить -> Обзор -> добавить свой основной класс.

Также вам следует использовать:

public static void main(String[] args) { 

как ваш старт для главного метода.

Надеется, что это помогает :-)

+1

Основная проблема - это озеро основного метода, а не способ запуска приложения. Запуск в конкретном java-файле будет работать. – AxelH

0

в первую очередь основные() неправильно, он должен быть public static void main(String args[]) , то вам нужна declear переменного как статическое static boolean state; static String color;

проверить код

package Lamp; 
import java.util.*; 

    public class Lamp { 
    public Scanner input= new Scanner(System.in); 
     static boolean state; 
     static String color; 

     public Lamp() { 
      state = false; 
      color = "Blue"; 
     } 

     public boolean toggleState() { 
      if (state == false) { 
       state = true; 
      } 
      if (state == true) { 
       state = false; 
      } 
      System.out.println("State is now: " +state); 
      return state; 
     } 

     public String chooseColor(){ 
      System.out.println("Please choose a new color"); 
      color= input.nextLine(); 
      System.out.println("Color is now: " +color); 
      return color; 
     } 

     public static void main(String args[]){ 
      Lamp L1= new Lamp(); 
      System.out.println("State is now: " +state); 
      System.out.println("Color is now: " +color); 

      L1.toggleState(); 
      L1.chooseColor(); 

      System.out.println("State is now: " +state); 
      System.out.println("Color is now: " +color); 

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