如果这个问题以前有人回答过,我很抱歉,不过我搜索的时候没有找到类似的问题。
我目前正在学习和做一个课堂上的练习。我能够得到一个类似于我所需要的打印输出,但是数据没有填充测试输入。姓名返回为空,年龄:0,ID:0。
下面是这样的情况。
把CourseStudent的名字赋为Smith,年龄赋为20,ID赋为9999。使用printAll成员方法和一个单独的println语句来输出courseStudents的数据。从给定的程序中输出示例。
Name. Smith, Age: 20, ID: 9999: Smith, 年龄: 20, ID: 9999
// ===== Code from file PersonData.java =====
public class PersonData {
private int ageYears;
private String lastName;
public void setName(String userName) {
lastName = userName;
}
public void setAge(int numYears) {
ageYears = numYears;
}
// Other parts omitted
public void printAll() {
System.out.print("Name: " + lastName);
System.out.print(", Age: " + ageYears);
}
}
// ===== end =====
// ===== Code from file StudentData.java =====
public class StudentData extends PersonData {
private int idNum;
public void setID(int studentId) {
idNum = studentId;
}
public int getID() {
return idNum;
}
}
// ===== end =====
// ===== Code from file StudentDerivationFromPerson.java =====
public class StudentDerivationFromPerson {
public static void main (String [] args) {
StudentData courseStudent = new StudentData();
courseStudent.printAll();
System.out.println(", ID: " + courseStudent.getID());
}
}
// ===== end =====
我确信我忽略了一些简单的东西,但我不确定是什么。我的代码就是最后几行。
courseStudent.printAll();
System.out.println(", ID: " + courseStudent.getID());
我想你还没有尝试将args分配到实例中去 课程学生 你刚刚启动的。你可以试试这个,看看是否有效。
// Assumming your input is in this form : <name> <age> <student_id>
// For example: Adam 19 4000
StudentData courseStudent = new StudentData();
// We get the args and convert them with the appropriate types
String name = args[0];
int age = String.parseInt(args[1]);
int id = String.parseInt(args[2]);
// We assgin the values into `courseStudent`
courseStudent.setName(name);
courseStudent.setAge(age);
courseStudent.setID(id);
courseStudent.printAll();
System.out.println(", ID: " + courseStudent.getID());