#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:
- Ваш Game.java класс неполный, у него нет
getTime
метода. Также пропущены некоторые фигурные скобки. Завершите это, пожалуйста. - Также ваш класс TestGame не имеет
t1
t2
g
переменных и . У него естьteam1
,team2
иgame
вместо этого. Исправьте это тоже. - У вас ошибка внутри вашего
display
метода. Вы передаете здесь только одинTeam t
, но внутри этого метода вы пытаетесь распечатать данные из некоторыхteam1
team2
team3
переменных. Они просто не существуют в этой области. - Внутри метода отображения вы пытаетесь получить статическую переменную класса вместо экземпляра. В этом нет смысла.
Вот пример рабочего кода.
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(), «Шершни»); }