当此代码声明course2 = course1时发生了什么;因为之后发生的事情我无法理解。如果我评论出course2 = course1;我有两次编程基础知识。
public Course(int courseID, String courseName) {
ID = courseID;
name = courseName;
}
public String getName() {
return name;
}
public void setName(String newName) {
name = newName;
}
public static void main(String[] args) {
Course course1 = new Course(2531, "Programming Fundamentals");
Course course2 = new Course(1285, "Algorithms and Analysis");
System.out.println(course1.getName());
course2 = course1;
course2.setName("PF");
System.out.println(course1.getName());
}
输出为:
编程基础
PF
答案 0 :(得分:2)
course2 = course1;
将course2
的值更改为对course1
引用的同一对象(由语句new Course(2531, "Programming Fundamentals")
创建的对象)的引用。
因此,course1
和course2
现在都引用同一个对象,因此course2.setName("PF")
与course1.setName("PF")
具有相同的行为。因此,第二个System.out.println(course1.getName())
打印"PF"
。
如果您注释掉course2 = course1;
作业,course2
会引用其他对象,因此course2.setName("PF")
不会影响course1
引用的对象。因此,第二个System.out.println(course1.getName())
仍会打印"Programming Fundamentals"
。
答案 1 :(得分:0)
course1
和course2
是对班级Course
的对象的引用
使用course2 = course1
,您可以将对象course2
更改为与course1
相同的对象。因此,您可以使用course1
和course2
访问同一个对象。
答案 2 :(得分:0)
course1
是一个变量,它引用一个对象,比如说object1。
course2
是另一个变量,它引用另一个对象,比如说object2。
当您致电course2 = course1
时,您会让他们引用相同的对象 - object1
。