package com.ray.testobject;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
Person bill = new Person("bill", 2);
Person temp = bill;
bill = new Person("jack", 3);
System.out.println(bill.equals(temp));
}
}
输出:false
通过上面的代码,可以看到,构造函数必须使用new,而且对于同一个对象,不能够再次使用new来改变里面的属性域。
package com.ray.testobject;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
Person bill = new Person("bill", 2);
Person temp = bill;
// bill = new Person("jack",4);注释这一句
// 使用里面的方法改变内容
bill.setAge(4);
bill.setName("jack");
System.out.println(bill.equals(temp));
System.out.println(bill.getName());
}
}
输出:
true
jack
我们再来看上面的代码,只是改动了两句,但是他指向的对象没有变化,只是通过里面的方法,把对象的属性域给改变了