Tableau de l'Étudiant des objets java

Juste pour donner une course vers le bas de ce que je suis en train de faire, ici, c'est le HW mon professeur m'a donné:

  1. Définir une classe d'Étudiants qui s'étend de la Personne. Il ajoute les attributs

Int Test1, test2, test3
Double moyenne
Chaîne grade

Il a des méthodes computeaverage() et calculategrade(). Les notes sont basées sur la moyenne, au-dessus de 90, une à Une, de 80 à 90 B, 70 à 80 C, etc. Tous les autres attributs ont un ensemble et un get.

  1. Écrire une application qui utilise un tableau de type étudiant de taille 20. Le programme demande à l'utilisateur combien d'élèves sont dans la classe, puis leur permet de faire entrer les élèves et leurs résultats à un test, puis calcule de leurs classes et imprime la liste des élèves et de leurs classes.

Cela dit...

Jeudi, j'ai vu un des camarades de classe de code qu'il a obtenu de la part de l'enseignant et il y avait quelque chose que je n'ai pas vu avant dans mon élève de la classe sur la ligne 37 (Étudiant Constructeur). Au lieu d'avoir des getters et setters il avait un code similaire à ce que j'ai à la ligne 37. Mais je n'ai aucune idée de ce qu'il a fait et le code correct. Alors j'espérais que quelqu'un ici pourrait me dire ce que je fais de mal et comment ce code peut s'en sortir sans l'aide de méthodes getter et setter???

public class Person {
/**
* @param args the command line arguments
*/
public static void main(String[] args) 
{
Scanner kbd = new Scanner(System.in);
Student newStudent = new Student();
int size;
System.out.println("Enter the amount of students:");
size = kbd.nextInt();
Student[] myStudent = new Student[size];
String firstName;
String lastName;
int test1, test2, test3;
Student s;
for (int i=0; i < size; i++)
{
System.out.println("Enter first name of student: " + i);
firstName = kbd.next();
System.out.println("Enter last name if student: " +i);
lastName = kbd.next();
System.out.println("Please Enter first test score: ");
//       JOptionPane.showInputDialog("Please enter first test score:");
test1= kbd.nextInt();
System.out.println("Please enter second test score");
//       JOptionPane.showInputDialog("Please enter second test score:");
test2= kbd.nextInt();
System.out.println("Please enter third test score");
//       JOptionPane.showInputDialog("Please enter third test score:");
test3=kbd.nextInt();
//       s = new Student (test1, test2, test3, firstName, lastName);
myStudent[i].setTest1(test1);
myStudent[i].setTest2(test2);
myStudent[i].setTest3(test3);
myStudent[i].setfName(fName);
myStudent[i].setlName(lname);
}
for (int i = 0; i < size; i++)
{
System.out.println(myStudent[i].getGrade());
}
}
}
public class Student extends Person{
int test1, test2, test3;
double average;
String grade, firstName, lastName;
public Student() 
{
test1 = 0;
test2 = 0;
test3 = 0;
average = 0;
}
public Student(int test1, int test2, int test3, String firstName, String lastName) 
{
this.test1 = test1;
this.test2 = test2;
this.test3 = test3;
this.setfirstName = firstName;
}
public double computeAverage()
{
average = (test1 + test2 + test3)/3;
return average;
}
public String calculateGrade()
{
average = computeAverage();
if (average < 60){
grade = "F";}
else if (average < 70){
grade = "D";}
else if (average < 80){
grade = "C";}
else if (average < 90){
grade = "B";}
else {
grade = "A";
}
return grade;
}
public int getTest1() {
return test1;
}
public void setTest1(int test1) {
this.test1 = test1;
}
public int getTest2() {
return test2;
}
public void setTest2(int test2) {
this.test2 = test2;
}
public int getTest3() {
return test3;
}
public void setTest3(int test3) {
this.test3 = test3;
}
public double getAverage() {
return average;
}
public void setAverage(double average) {
this.average = average;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
}
  • N'est pas très clair, ce que la ligne est de 37? Parce qu'il y a deux constructeur sans paramètres et un avec 5.
  • Il a utilisé un surchargé constructeur. Vous pouvez appeler Student() et entrer les valeurs manuellement OU à l'appel Student(int, int, int, String, String) et les mettre dans le constructeur d'un seul trait. Même lorsque vous utilisez le deuxième exemple, votre code doit toujours avoir setters/getters.
InformationsquelleAutor JP Hochbaum | 2014-01-26