Java программирование Пользовательский класс - PullRequest
0 голосов
/ 01 мая 2020

Я новичок в программировании. В этом программировании я создал пользовательский класс publi c с именем NumberOfGoals, который содержит деформацию данных, которая называется goalcored. Он имеет конструктор NumberOfGoal, который является публичным c. Когда он вызывается, для targetScored устанавливается значение 5. У него также есть методы setGoal и getGoal. Затем я создаю класс драйвера под названием GoalTracker, который создает экземпляры и создает объекты goal1, goal2 и goal3. Я сохранил файл с именем GoalTracker. java. Но когда я выполняю файл, я получаю сообщение об ошибке, как показано ниже:

GoalTracker. java: 1: ошибка: класс NumberOfGoals is publi c, должен быть объявлен в файле с именем NumberOfGoals. java publi c class NumberOfGoals ^ 1 error

Не могли бы вы мне помочь ??

Но когда я пропустил слово "publi c" из "publi" c class NumberOfGoals "(пользовательский класс), кажется, он выполняется. Пожалуйста, кратко объясните, почему это произошло, когда я удалил слово publi c.

   public class NumberOfGoals 
{
      public  int goalsScored;

       public NumberOfGoals(){
            goalsScored= 5; 
        }
       public void setGoal() {
          goalsScored++; 
       }
       public int getGoal() {
          return goalsScored;
       }
  }
   public class GoalTracker
 {
    public static void main(String[] args)
    {
        NumberOfGoals goal = new NumberOfGoals();
        NumberOfGoals goal2 = new NumberOfGoals();
        NumberOfGoals goal3 = new  NumberOfGoals();
        goal.setGoal();
        System.out.println(goal.getGoal());
    }
} 

1 Ответ

0 голосов
/ 01 мая 2020

Создайте класс GoalTracker в отдельном файле!

Как говорит исключение,

[...] должно быть объявлено в файле с именем NumberOfGoals. java

Но вы можете получить inner class, как и вы. Кроме того, просто удалите модификатор доступа public в классе GoalTrakcer.

Вот пример документации и руководства по внутреннему и вложенному классу

решение внутреннего класса

Здесь у нас есть один файл с именем NumberOfGoals.java

  public class NumberOfGoals {
      public  int goalsScored;

       public NumberOfGoals(){
            goalsScored= 5; 
        }

       // Getters and Setters ommited

  }

  class GoalTracker {

     public static void main(String[] args) {
          NumberOfGoals goal = new NumberOfGoals();
          NumberOfGoals goal2 = new NumberOfGoals();
          NumberOfGoals goal3 = new  NumberOfGoals();
          goal.setGoal();
         System.out.println(goal.getGoal());
     }

  }

Решение с разделенным классом

Здесь нам нужно 2 файла, один из которых называется NumberOfGoals.java, а другой - GoalTracker.java и теперь мы можем объявить public значение доступа.

NumberOfGoals. java

  public class NumberOfGoals {
      public  int goalsScored;

       public NumberOfGoals(){
            goalsScored= 5; 
        }

       // Getters and Setters ommited

  }

GoalTracker. java

  public class GoalTracker {

     public static void main(String[] args) {
          NumberOfGoals goal = new NumberOfGoals();
          NumberOfGoals goal2 = new NumberOfGoals();
          NumberOfGoals goal3 = new  NumberOfGoals();
          goal.setGoal();
         System.out.println(goal.getGoal());
     }

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