实施 2 Java 类
Implementing 2 Java Classes
我正在学习 java 并尝试实现两个 java classes.
- 学生:
firstName
、lastName
、departmentIn
、yearGraduation
,这个学生正在修读的 UAClass 数组,一个整数数组,对应于收到的成绩这些 classes
- UAClass:
teacherFirstName
、teacherLastName
、semesterOffered
、numCredits
在 Student class 中,实现一个计算 GPA 的方法。在 Student 的 main()
方法中,启动一个 Student 对象并打印出她的 GPA。
在我的 student.java class 我有:
import java.util.*;
public class Student {
private String firstName;
private String lastName;
private String departmentIn;
private String yearGraduation;
private float [] grade;
private int counter = 0;
private String Student;
public Student(String my_firstName, String my_lastName, String my_deptIn, String my_yearGrad) {
firstName = my_firstName;
lastName = my_lastName;
departmentIn = my_deptIn;
yearGraduation = my_yearGrad;
grade = new float[5];
}
public String toString(){
String value;
value = "First Name: " + firstName + "\n";
value += "Last Name : " + lastName + "\n";
value += "Department: " + departmentIn + "\n";
value += "Grad. Year: " + yearGraduation + "\n";
return value;
}
public static void main(String[] args) {
Student my1 = new Student("Bob", "Hope", "MBA", "2018");
Student my2 = new Student("John", "Smith", "MBA", "2020");
Student my3 = new Student("Jane", "Doe", "MBA", "2021");
UAClass cy1 = new UAClass[4];
String[] secondArray = cy1.getarrayClass();
System.out.println(my1);
System.out.println(my2);
System.out.println(my3);
System.out.println(Arrays.toString(cy1));
}
}
在我的 UAClass.java class 我有:
import java.util.*;
public class UAClass {
private String teacherFirstName;
private String teacherLastName;
private String semesterOffered;
private String numCredits;
private String[] arrayClass = {"MBA 501","MBA 505","MBA 513","MBA 545"};
public UAClass(String teacherF, String teacherL, String semesterO, String numC) {
teacherFirstName = teacherF;
teacherLastName = teacherL;
semesterOffered = semesterO;
numCredits = numC;
}
public String[] getarrayClass(){
return arrayClass.clone();
}
}
我想做的是在“UAClass
”中创建一个数组并将其打印到“Student
”中,但我似乎无法让它工作。
我已经按照 Amit 的建议修改了代码。当我 运行 它时,我得到这个错误。
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: Array.getarrayClass at Homework2.Student.main(Student.java:66)
String[] secondArray = cy1.getarrayClass(); 似乎有问题;
我删除了 String[] secondArray = cy1.getarrayClass()
行,它似乎 运行 没问题,但现在我得到的只是 [null, null, null, null]
当您像那样更改代码时它会起作用,但我无法理解您要在代码中做什么。
UAClass cy1 = new UAClass("Bob", "", "", "");
String[] secondArray = cy1.getarrayClass();
System.out.println(my1);
System.out.println(my2);
System.out.println(my3);
System.out.println(cy1.getarrayClass());
首先,您的 UAClass 有一个以 String teacherF, String teacherL, String semesterO, String numC
作为参数的构造函数。
所以你需要像这样调用这个构造函数:
UAClass cy1 = new UAClass("Teacher F", "Teacher L", "Semester", "NumC");
其次,您使用了 String[] 类型。这是一种低级数组类型。您可以在 Java 中执行此操作,但通常人们更愿意使用 List
类型,而不是原始类型,但最好使用 List<String>
。 List 实际上是一个接口,但是你可以引用它作为 Arrays class returns List class.
的实现
然后您应该使用:
private List<String> arrayClass = Arrays.asList("MBA 501","MBA 505","MBA 513","MBA 545");
而你 return 阵列的克隆。我认为您这样做是因为您不希望更改数组。我只想 return 一个带值的串联字符串。这是一个带有流的很好的例子。
public String getClasses() {
return arrayClass.stream().collect(Collectors.joining(","));
}
现在在 Student class 中,您可以像这样打印 classes 的列表:
System.out.println(cy1.getClasses());
我正在学习 java 并尝试实现两个 java classes.
- 学生:
firstName
、lastName
、departmentIn
、yearGraduation
,这个学生正在修读的 UAClass 数组,一个整数数组,对应于收到的成绩这些 classes - UAClass:
teacherFirstName
、teacherLastName
、semesterOffered
、numCredits
在 Student class 中,实现一个计算 GPA 的方法。在 Student 的 main()
方法中,启动一个 Student 对象并打印出她的 GPA。
在我的 student.java class 我有:
import java.util.*;
public class Student {
private String firstName;
private String lastName;
private String departmentIn;
private String yearGraduation;
private float [] grade;
private int counter = 0;
private String Student;
public Student(String my_firstName, String my_lastName, String my_deptIn, String my_yearGrad) {
firstName = my_firstName;
lastName = my_lastName;
departmentIn = my_deptIn;
yearGraduation = my_yearGrad;
grade = new float[5];
}
public String toString(){
String value;
value = "First Name: " + firstName + "\n";
value += "Last Name : " + lastName + "\n";
value += "Department: " + departmentIn + "\n";
value += "Grad. Year: " + yearGraduation + "\n";
return value;
}
public static void main(String[] args) {
Student my1 = new Student("Bob", "Hope", "MBA", "2018");
Student my2 = new Student("John", "Smith", "MBA", "2020");
Student my3 = new Student("Jane", "Doe", "MBA", "2021");
UAClass cy1 = new UAClass[4];
String[] secondArray = cy1.getarrayClass();
System.out.println(my1);
System.out.println(my2);
System.out.println(my3);
System.out.println(Arrays.toString(cy1));
}
}
在我的 UAClass.java class 我有:
import java.util.*;
public class UAClass {
private String teacherFirstName;
private String teacherLastName;
private String semesterOffered;
private String numCredits;
private String[] arrayClass = {"MBA 501","MBA 505","MBA 513","MBA 545"};
public UAClass(String teacherF, String teacherL, String semesterO, String numC) {
teacherFirstName = teacherF;
teacherLastName = teacherL;
semesterOffered = semesterO;
numCredits = numC;
}
public String[] getarrayClass(){
return arrayClass.clone();
}
}
我想做的是在“UAClass
”中创建一个数组并将其打印到“Student
”中,但我似乎无法让它工作。
我已经按照 Amit 的建议修改了代码。当我 运行 它时,我得到这个错误。
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: Array.getarrayClass at Homework2.Student.main(Student.java:66)
String[] secondArray = cy1.getarrayClass(); 似乎有问题;
我删除了 String[] secondArray = cy1.getarrayClass()
行,它似乎 运行 没问题,但现在我得到的只是 [null, null, null, null]
当您像那样更改代码时它会起作用,但我无法理解您要在代码中做什么。
UAClass cy1 = new UAClass("Bob", "", "", "");
String[] secondArray = cy1.getarrayClass();
System.out.println(my1);
System.out.println(my2);
System.out.println(my3);
System.out.println(cy1.getarrayClass());
首先,您的 UAClass 有一个以 String teacherF, String teacherL, String semesterO, String numC
作为参数的构造函数。
所以你需要像这样调用这个构造函数:
UAClass cy1 = new UAClass("Teacher F", "Teacher L", "Semester", "NumC");
其次,您使用了 String[] 类型。这是一种低级数组类型。您可以在 Java 中执行此操作,但通常人们更愿意使用 List
类型,而不是原始类型,但最好使用 List<String>
。 List 实际上是一个接口,但是你可以引用它作为 Arrays class returns List class.
然后您应该使用:
private List<String> arrayClass = Arrays.asList("MBA 501","MBA 505","MBA 513","MBA 545");
而你 return 阵列的克隆。我认为您这样做是因为您不希望更改数组。我只想 return 一个带值的串联字符串。这是一个带有流的很好的例子。
public String getClasses() {
return arrayClass.stream().collect(Collectors.joining(","));
}
现在在 Student class 中,您可以像这样打印 classes 的列表:
System.out.println(cy1.getClasses());