Просто чтобы дать бежать вниз, что я пытаюсь сделать, вот HW мой профессор дал мне:Массив Студента объектов Java
- Определите класс Student, который проходит Person. Он добавляет атрибуты
Int Test1, test2, test3 Двойной средний класс Строка
Он имеет методы computeaverage() и calculategrade(). Оценки основаны на среднем значении: выше 90 A, от 80 до 90 a B, от 70 до 80 a C и т. Д. Все остальные атрибуты имеют набор и получение.
- Напишите приложение, которое использует массив типа студента размера 20. Программа запрашивает у пользователя, сколько студентов в классе, а затем позволяет им войти студент и их результаты тестов, а затем вычисляет их оценки и распечатывает список студентов и их классы.
Это, как говорится ...
В четверг я увидел код одноклассников, что он получил от учителя, и он что-то, что я не видел в моем студенческом классе по линии 37 (Student Конструктора). Вместо того, чтобы иметь геттеры и сеттеры, у него был код, подобный тому, что у меня есть в строке 37. Но я понятия не имею, что он сделал и правильное кодирование. Поэтому я надеялся, что кто-то здесь может сказать мне, что я делаю неправильно, и как этот код может уйти без использования методов getter и 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;
}
}
Не очень ясно, какая линия 37? Потому что есть два конструктора, один без параметров и один с 5. – Christian
Он использовал конструктор [перегруженный] (http://docs.oracle.com/javase/tutorial/java/javaOO/methods.html). Вы можете вызвать 'Student()' и ввести значения вручную или вызвать 'Student (int, int, int, String, String)' и установить их внутри конструктора за один такт. Даже когда вы используете второй пример, ваш код должен иметь сеттеры/геттеры. – csmckelvey