实例A = 实例B,这到底是做什么的?
Instance A = Instance B, what exactly does this do?
这段代码声明 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
course1
和 course2
是对 class Course
.
对象的引用
使用 course2 = course1
可以将对象 course2
指向与 course1
相同的对象。因此,您之后可以使用 course1
和 course2
访问同一个对象。
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"
.
course1
是一个变量,它引用一个对象,比方说object1.
course2
是另一个变量,它引用另一个对象,比方说 object2.
当您调用 course2 = course1
时,您让它们引用同一个对象 --object1
.
这段代码声明 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
course1
和 course2
是对 class Course
.
对象的引用
使用 course2 = course1
可以将对象 course2
指向与 course1
相同的对象。因此,您之后可以使用 course1
和 course2
访问同一个对象。
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"
.
course1
是一个变量,它引用一个对象,比方说object1.
course2
是另一个变量,它引用另一个对象,比方说 object2.
当您调用 course2 = course1
时,您让它们引用同一个对象 --object1
.