Упражнение на Java: я не уверен, что я делаю неправильно, и вся помощь приветствуется

#java #class #methods

#java #класс #методы

Вопрос:

Я работаю со следующими фрагментами кода и продолжаю получать это сообщение об ошибке: Ошибка: метод Main не найден в классе Team, пожалуйста, определите метод main как: public static void main(String[] args) или класс приложения JavaFX должен расширять javafx.application.Приложение. Все предложения, мнения и изменения приветствуются, поскольку я совершенно не понимаю, почему это не работает. Заранее большое спасибо, и я надеюсь, что у всех вас отличный день!

 Game.java:

public class Game {

  private Team team1;
  private Team team2;
  private String time;

  public Game(Team t1, Team t2, String time) {
    super();

    this.team1 = team1;
    this.team2 = team2;
    this.time = time;
  }

  public String getTime() {
    return "TIME";
  }

}


Team.java:

public class Team {

  private String name;
  private String sport;
  private String mascot;
  public final static String MOTTO = "Sportsmanship!";

  public Team(String name, String sport, String mascot) {
    this.name = name;
    this.sport = sport;
    this.mascot = mascot;
  }

  //method to set the school name
  public String getName() {
    return name;
  }

  //method to set the sport name
  public String getSport() {
    return sport;
  }

  //method to set the team name
  public String getMascot() {
    return mascot;
  }
}


TestGame.java:

public class TestGame {

  public static void main(String[] args) {
    Team team1 = new Team("Roosevelt High", "Girls Basketball", "Dolphins");
    Team team2 = new Team("Hoover High", "Girls Basketball", "Tigers");
    Game game1 = new Game(team1, team2, "7 PM");

    System.out.println("The game between "   team1.getName()   " "   team1.getSport()  
        " "   team1.getMascot());
    System.out.println("   and "   team2.getName()   " "   team2.getSport()  
        " "   team2.getMascot());
    System.out.println("   takes place at "   game1.getTime());
  }
}


TestTeam.java:

public class TestTeam {

  public static void main(String[] args) {
    Team team1 = new Team("Roosevelt High", "Girls Basketball", "Dolphins");
    Team team2 = new Team("Hoover High", "Boys Wrestling", "Tigers");
    Team team3 = new Team("Lincoln High", "Girls Field Hockey", "Gators");
    display(team1);
    display(team2);
    display(team3);
  }

  public static void display(Team team) {
    System.out.println(
        team.getName()   ""   team.getSport()   ""   team.getMascot()   ""
              Team.MOTTO);
  }
}
  

Ответ №1:

  1. Ваш Game.java класс неполный, у него нет getTime метода. Также пропущены некоторые фигурные скобки. Завершите это, пожалуйста.
  2. Также ваш класс TestGame не имеет t1 t2 g переменных и . У него есть team1 , team2 и game вместо этого. Исправьте это тоже.
  3. У вас ошибка внутри вашего display метода. Вы передаете здесь только один Team t , но внутри этого метода вы пытаетесь распечатать данные из некоторых team1 team2 team3 переменных. Они просто не существуют в этой области.
  4. Внутри метода отображения вы пытаетесь получить статическую переменную класса вместо экземпляра. В этом нет смысла.

Вот пример рабочего кода.

Game.java:

 public class Game {

  private Team team1;
  private Team team2;
  private String time;

  public Game(Team t1, Team t2, String time) {
    super();

    this.team1 = team1;
    this.team2 = team2;
    this.time = time;
  }

  public String getTime() {
    return "TIME";
  }

}
  

Team.java:

 public class Team {

  private String name;
  private String sport;
  private String mascot;
  public final static String MOTTO = "Sportsmanship!";

  public Team(String name, String sport, String mascot) {
    this.name = name;
    this.sport = sport;
    this.mascot = mascot;
  }

  //method to set the school name
  public String getName() {
    return name;
  }

  //method to set the sport name
  public String getSport() {
    return sport;
  }

  //method to set the team name
  public String getMascot() {
    return mascot;
  }
}
  

TestGame.java:

 public class TestGame {

  public static void main(String[] args) {
    Team team1 = new Team("Roosevelt High", "Girls Basketball", "Dolphins");
    Team team2 = new Team("Hoover High", "Girls Basketball", "Tigers");
    Game game1 = new Game(team1, team2, "7 PM");

    System.out.println("The game between "   team1.getName()   " "   team1.getSport()  
        " "   team1.getMascot());
    System.out.println("   and "   team2.getName()   " "   team2.getSport()  
        " "   team2.getMascot());
    System.out.println("   takes place at "   game1.getTime());
  }
}
  

TestTeam.java:

 public class TestTeam {

  public static void main(String[] args) {
    Team team1 = new Team("Roosevelt High", "Girls Basketball", "Dolphins");
    Team team2 = new Team("Hoover High", "Boys Wrestling", "Tigers");
    Team team3 = new Team("Lincoln High", "Girls Field Hockey", "Gators");
    display(team1);
    display(team2);
    display(team3);
  }

  public static void display(Team team) {
    System.out.println(
        team.getName()   ""   team.getSport()   ""   team.getMascot()   ""
              Team.MOTTO);
  }
}
  

Комментарии:

1. В чем ошибки? Я все это протестировал. Это работает хорошо.

2. Ошибка: метод Main не найден в классе Team, пожалуйста, определите метод main как: public static void main(String[] args) или класс приложения JavaFX должен расширять javafx.application. Приложение

3. Team класс не является вашим основным классом. Вам нужно запускать классы с public static void main методами для запуска вашего приложения. У вас есть два из них: TestTeam или TestGame . Запустите любой из них.

4. Я запускаю их, и они отображают правильный вывод, однако в Cengage он сообщает мне, что класс Tam все еще не функционирует так, как было запрошено. Ниже приведено содержимое, которое он тестирует.

5. @Test public void unitTest() { Team team = новая команда («Школа Линкольна», «Хоккей на траве для девочек», «Аллигаторы»); assertEquals(team.getName(), «Школа Линкольна»); assertEquals(team.getSport(), «Хоккей на траве для девочек»); assertEquals(team.getMascot(), «Gators»); Команда team2 = новая команда («Essex High», «Golf», «Hornets»); assertEquals(team2.getName(), «Essex High»); assertEquals(team2.getSport(), «Golf»); assertEquals(team2.getMascot(), «Шершни»); }