Java 将对象指定给对象
作为任务的一部分,我收到了以下文件:Java 将对象指定给对象,java,Java,作为任务的一部分,我收到了以下文件: private static void addStudent(int id, String firstName, String lastName,int mathsMark1, int mathsMark2, int mathsMark3, int englishMark1, int englishMark2, int englishMark3) 解释如下: 创建一个新的Student对象和两个AsignmentMarks对象(用于数学和英语)。使
private static void addStudent(int id, String firstName, String lastName,int
mathsMark1, int mathsMark2, int mathsMark3, int englishMark1, int
englishMark2,
int englishMark3)
解释如下:
创建一个新的Student对象和两个AsignmentMarks对象(用于数学和英语)。使用给定的参数指定这三个对象的值。记住将两个AssignmentMarks对象指定给Student对象。最后,将该学生添加到学生列表中
学生班级:
public class Student {
private int id;
private String firstName;
private String lastName;
public AssignmentMarks mathMarks;
public AssignmentMarks englishMarks;
public Student(int studentID, String firstName, String lastName, int
mathMark1, int mathMark2, int mathMark3, int englishMark1, int englishMark2,
int englishMark3) {
id = studentID;
this.firstName = firstName;
this.lastName = lastName;
}
}
作业分数类别:
public class AssignmentMarks {
private String courseName;
private int assignment1;
private int assignment2;
private int assignment3;
public AssignmentMarks(String name, int mark1, int mark2, int mark3) {
courseName = name;
assignment1 = mark1;
assignment2 = mark2;
assignment3 = mark3;
}
}
学生对象将添加到列表中。我的问题是“有人知道我得到的解释中“记住将两个AssignmentMarks对象分配给Student对象”是什么意思吗
我理解的问题不在于如何做。您必须创建两个
赋值标记
实例:
- 一个用于
属性englishMarks
- 一个用于
属性mathMarks
this.englishMarks = new AssignmentMarks("english",
englishMark1, englishMark2, englishMark3);
对于mathMarks,您也可以这样做。这两个对象
AssignmentMarks mathMarks
和AssignmentMarks englishMarks
未在构造函数中赋值,因此初始化为null
。但是,由于它们被声明为public
,因此可以通过创建的对象进行赋值。这将导致k像这样:
Student s = new Student(0, "Foo", "Bar", 1, 2, 3, 4, 5, 6);
//Note that the arguments int mathMark1, int mathMark2,
//int mathMark3, int englishMark1, int englishMark2, int englishMark3 will be ignored
//s.mathMarks and s.englishMarks are null here
s.mathMarks = new AssignmentMarks("Math", 4, 5, 6);
//s.mathMarks is now initialized, s.englishMarks is not initialized.
s.englishMarks= new AssignmentMarks("English", 1, 2, 3);
//Both are initialized now.
public class Student {
private int id;
private String firstName;
private String lastName;
public AssignmentMarks mathMarks;
public AssignmentMarks englishMarks;
public Student(int studentID, String firstName, String lastName,
int mathMark1, int mathMark2, int mathMark3,
int englishMark1, int englishMark2, int englishMark3) {
// assign the primitives and String attributes directly
id = studentID;
this.firstName = firstName;
this.lastName = lastName;
// assign the subject marks with newly created objects defined by parametrized constructor call
mathMarks = new AssignmentMarks("maths", mathMark1, mathMark2, mathMark3);
englishMarks = new AssignmentMarks("english", englishMark1, englishMark2, englishMark3);
}
}
我希望这对你有帮助
创建新的学生对象
和两个AsignmentMarks对象(用于数学和英语)
记住将两个AssignmentMarks对象分配给学生
反对
最后,将该学生添加到学生列表中
//List students=new ArrayList();
学生。添加(学生);
似乎您希望或必须在此构造函数中直接处理给定给学生的构造函数的参数。您可以在那里创建新的赋值标记
,并将其分配给学生的类属性。
没有那么多事情要做,只需在学生
课堂上添加两行内容,如下所示:
Student s = new Student(0, "Foo", "Bar", 1, 2, 3, 4, 5, 6);
//Note that the arguments int mathMark1, int mathMark2,
//int mathMark3, int englishMark1, int englishMark2, int englishMark3 will be ignored
//s.mathMarks and s.englishMarks are null here
s.mathMarks = new AssignmentMarks("Math", 4, 5, 6);
//s.mathMarks is now initialized, s.englishMarks is not initialized.
s.englishMarks= new AssignmentMarks("English", 1, 2, 3);
//Both are initialized now.
public class Student {
private int id;
private String firstName;
private String lastName;
public AssignmentMarks mathMarks;
public AssignmentMarks englishMarks;
public Student(int studentID, String firstName, String lastName,
int mathMark1, int mathMark2, int mathMark3,
int englishMark1, int englishMark2, int englishMark3) {
// assign the primitives and String attributes directly
id = studentID;
this.firstName = firstName;
this.lastName = lastName;
// assign the subject marks with newly created objects defined by parametrized constructor call
mathMarks = new AssignmentMarks("maths", mathMark1, mathMark2, mathMark3);
englishMarks = new AssignmentMarks("english", englishMark1, englishMark2, englishMark3);
}
}
这意味着你应该“记住将两个AssignmentMarks对象分配给Student对象”你认为这是什么意思?“我理解这个问题,但不知道怎么做。”然后向你的老师寻求更多帮助。我们不会为你写这篇文章——反正这对你来说不是最好的。关于堆栈溢出的问题必须具体。说“我不知道怎么做我的作业“这并不具体。就我所见,这项任务已经分解为可管理的步骤。你只需要一个接一个地看一遍。我就在这里的开头。我正在尽我最大的努力。就像我说的,我理解这个句子,但是如何将assessmentmarks对象分配给Student对象,而不将assessmentmarks作为Student构造函数的一部分?我整天都在努力从我的导师那里获得信息和更好的解释。材料含糊不清,尚未涵盖。他不会帮助我的。我在远距离学习,否则我会去和他谈谈。如果我不能在这里得到帮助或从我的导师那里得到帮助,我有点迷路了……一些帮助?那是行不通的@艾丽西:为什么不呢?你能解释一下吗?它不起作用,因为:mark1、mark2和mark3不存在,而且你没有在构造函数调用中编写参数类型。@Aliceoua最重要的一点是,我已经更正了答案。老实说,Oleg我可以吻你!我所需要的只是学生;student.englishMarks=英语标记;我什么都有。我意识到,对于任何阅读本文的人来说,这似乎很简单,但如果你不知道,没有人会解释你是如何自发地达到目的的?
// List<Student> students = new ArrayList<>();
students.add(student);
public class Student {
private int id;
private String firstName;
private String lastName;
public AssignmentMarks mathMarks;
public AssignmentMarks englishMarks;
public Student(int studentID, String firstName, String lastName,
int mathMark1, int mathMark2, int mathMark3,
int englishMark1, int englishMark2, int englishMark3) {
// assign the primitives and String attributes directly
id = studentID;
this.firstName = firstName;
this.lastName = lastName;
// assign the subject marks with newly created objects defined by parametrized constructor call
mathMarks = new AssignmentMarks("maths", mathMark1, mathMark2, mathMark3);
englishMarks = new AssignmentMarks("english", englishMark1, englishMark2, englishMark3);
}
}