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

Хорошо, поэтому основной метод был дан мне в моей книге. Мне просто нужно работать с сеттерами и геттерами и создать метод 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.