Статический метод и удаление инициализации класса
Есть задание:
Объявите метод convertGrades() класса ReportCard как статический и удалите строку инициализации класса из метода main()
package Example;
public class ReportCard {
public static char convertGrades (int testResult) {
char grade;
if (testResult >= 90) {
grade = 'A';
} else if (testResult >= 80 && testResult < 90) {
grade = 'B';
} else if (testResult >= 70 && testResult < 80) {
grade = 'C';
} else {
grade = 'D';
}
return grade;
}
public static void main (String [] args) {
ReportCard rc = new ReportCard();
char yourGrade = rc.convertGrades(88);
System.out.println("Ваша первая оценка " +yourGrade);
yourGrade = rc.convertGrades(79);
System.out.println("Ваша вторая оценка " +yourGrade);
}
}
Метод convertGrades статическим объявил, но не пойму, где строка инициализации класса в методе main? Подскажите, спасибо!
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
Строкой инициализации в данном случае является строка
ReportCard rc = new ReportCard();
Пока ваш метод convertGrades не был статическим вы не могли к нему обратиться из статического метода main , вам приходилось сначала создавать экземпляр класса ReportCard, а уже потом у переменной ReportCard rc вызывать нужный метод convertGrades. В итоге код будет выглядеть так:
public class ReportCard {
public static char convertGrades(int testResult) {
char grade;
if (testResult >= 90) {
grade = 'A';
} else if (testResult >= 80 && testResult < 90) {
grade = 'B';
} else if (testResult >= 70 && testResult < 80) {
grade = 'C';
} else {
grade = 'D';
}
return grade;
}
public static void main(String[] args) {
char yourGrade = convertGrades(88);
System.out.println("Ваша первая оценка " + yourGrade);
yourGrade = convertGrades(79);
System.out.println("Ваша вторая оценка " + yourGrade);
}
}