Полностью потерянный, помогите, пожалуйста, на сеттерах и геттерах

Хорошо, поэтому основной метод был дан мне в моей книге. Мне просто нужно работать с сеттерами и геттерами и создать метод defineTypeOfStudent. Цель состоит в том, чтобы показать свое имя, возраст, а затем оценку, в которой они, вероятно, находятся.

Появятся следующие ошибки:

System.out.println("Age ", + student1.getAge());

В нем нет подходящего метода для println (String, int), за которым следует абзац вещей, говорящих "неприменимо",

System.out.println("Type of Student: " + student1.determineTypeOfStudent());

Это говорит: "метод defineTypeOfStudent в классе Student не может применяться к заданным типам; требуется: int found: аргументы non arguments: фактические и формальные списки аргументов различаются по длине

объединить с...

вводить...

Затем эти два:

System.out.println("Type of Student: " + student2.determineTypeOfStudent());
System.out.println("Type of Student: " + student1.determineTypeOfStudent());

Кто такие же, как и предыдущие.

Я новичок в этом, поэтому я был бы признателен, если бы вы, ребята, поправили меня и дали мне объяснение.

public class StudentClient {
public static void main(String[] args) { Student student1 = new Student("Bob", 15); Student student2 = new Student("Jan", 13); System.out.println("Name: " + student1.getName()); System.out.println("Age ", + student1.getAge()); System.out.println("Type of Student: " + student1.determineTypeOfStudent()); System.out.println("\n" + student2.fullString()); System.out.println("Type of Student: " + student2.determineTypeOfStudent()); student1.setName("Ted"); student1.setAge(35); System.out.println("\n" + student1.fullString()); System.out.println("Type of Student: " + student1.determineTypeOfStudent());
}

-------CLASS FILE-----------

public class Student {
private String studentName;
private int studentAge;
public Student(String newName, int newAge) { setName(newName); setAge(newAge);
}
public void setName(String newName) { studentName = newName;
}
public String getName() { return studentName;
}
public void setAge(int newAge) { if (newAge > 0) { studentAge = newAge; } else { System.out.println("Age cannot be less than zero"); }
}
public int getAge() { return studentAge;
}
public String fullString() { return (studentName + studentAge);
}
public static String determineTypeOfStudent(int studentAge){ if (studentAge > 0 || studentAge <= 4) return "Preschool"; else if (studentAge == 5) return "Kindergarten"; else if (studentAge >= 6 || studentAge <= 10) return "Elementary School"; else if (studentAge >= 11 || studentAge <= 13) return "Middle School"; else if (studentAge >= 14 || studentAge <= 17) return "High School"; else if (studentAge >= 18) return "College"; else return "Invalid";
}
}
2 ответа

Вы должны изменить:

System.out.println("Age ", + student1.getAge());

в

System.out.println("Age " + student1.getAge());

System.out.println принимает один аргумент.

Что касается determineTypeOfStudent - вы вызываете его без аргументов, но он объявляет принимать один аргумент int. Кроме того, вы должны подумать о том, хотите ли вы, чтобы этот метод был статичным.


Первый - это плохо, потому что println принимает только один аргумент. Второй не работает, потому что вы не можете добавить String и int. Вы должны сначала вызвать печать на String, а затем println на int.

System.out.print("Age ");
System.out.println(student1.getAge());

licensed under cc by-sa 3.0 with attribution.