1、写一个 MyPoint 完全封装类,其中含有私有的 int 类型的 x 和 y 属性,分别用公有的 getX 和 setX、getY 和 setY方法访问,定义一个 toString 方法用来显示这个对象的 x、y 的值,如显示(1,2),最后用 main方法测试。
2、为MyPoint类添加public boolean equals(MyPoint mp)方法,创建两个MyPoint对象,使用equals方法比较两个对象是否相等,再使用==比较两个对象是否相等,思考两种比较的不同之处。
public class MyPoint {
private int x;
private int y;
//需要参数
public void setX(int x) {
this.x = x;
}
//不需要参数 返回值类型为int
public int getX() {
return x;
}
public void setY(int y) {
this.y = y;
}
public int getY() {
return y;
}
//把对象转换成字符串
public String toString() {
return "(" + x + "," + y + ")";
}
//比较两个对象是否相等
public boolean equals(MyPoint m) {
if (this.x == m.x && this.y == m.y) {
return true;
} else {
return false;
}
}
}
public class MyPointTest {
public static void main(String[] args) {
MyPoint m1 = new MyPoint();
//输出x,y的坐标
m1.setX(12);
m1.setY(13);
//把对象转换成字符串
System.out.println(m1);
MyPoint m2 = new MyPoint();
m2.setX(12);
m2.setY(131);
//把对象转换成字符串
System.out.println(m2);
//比较两个对象是否相等
boolean b = m1.equals(m2);
System.out.println(b);
//比较内存地址
boolean b1=m1==m2;
System.out.println(b1);
}
}
2.编写 MyPoint 的一个子类 MyXYZ,表示三维坐标点,重写 toString 方法用来显示这个对象的 x、y、z 的值,如显示(1,2,3),最后用 main 方法测试。
public class MyPoint {
// MyPoint 完全封装类
private int x;
private int y;
//需要参数
public void setX(int x) {
//this点取属性
this.x = x;
}
//不需要参数 返回值类型为int
public int getX() {
return x;
}
public void setY(int y) {
this.y = y;
}
public int getY() {
return y;
}
//把对象转换成字符串
public String toString() {
return "(" + x + "," + y + ")";
}
//比较两个对象是否相等
public boolean equals(MyPoint m) {
//比较m(m2) this(m1)
if (this.x == m.x && this.y == m.y) {
return true;
} else {
return false;
}
}
}
public class MyXYZ extends MyPoint {
private int z;
public void setZ(int z) {
this.z = z;
}
public int getZ() {
return z;
}
@Override
public String toString() {
return "(" + super.getX() + "," + super.getY() + "," + z + ")";
}
}
public class MyPointTest {
public static void main(String[] args) {
MyXYZ t1 = new MyXYZ();
t1.setZ(111);
t1.setX(112);
t1.setY(13);
//把对象转换成字符串
System.out.println(t1);
}
}