学习笔记博客

学习中

Java_Object

总述:他是所有类的父类

Class Object is the root of the class hierarchy.

但是具体问题具体分析,有些东西需要重写,比如Point

public class Point {
	private int x;
	private int y;
	public Point(int x, int y) {
		super();
		this.x = x;
		this.y = y;
	}
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
	public int getY() {
		return y;
	}
	public void setY(int y) {
		this.y = y;
	}
	/**
	 * toString方法是java API中最常被调用的方法。
	 * 通常我们定义的类都会被重写这个方法。
	 * 
	 * 返回的字符串没有具体的格式要求,可结合将来实际开发需求而定。
	 * 
	 * 原则上返回的字符串中应当包含当前对象属性信息。
	 */
	public String toString() {
		return "("+x+","+y+")";
	}
	/*
	 * 重写equals的目的是定义当前对象与给定的参数对象比较内容是否相同。
	 * 这里也没有严格要求必须两个对象所有属性都必须完全相同,可以根据实际开发情况而定。
	 */
	public boolean equals(Object o) {
		if(o==null) {
			return false;
		}
		if(o == this) {
			return true;
		}
		if(o instanceof Point ) {
			Point p = (Point)o;
			return this.x == p.x && this.y == p.y;
		}
		return false;
	}

}

重写后的应用

public class PointTest {
	public static void main(String[] args) {
		Point p=new Point(1,2);
		/*
		 * Object常见方法:
		 * String toString()
		 * 该方法的意义是将当前对象转换为一个字符串
		 * Object已经实现了该方法,返回的字符串是当前对象的句柄(引用),格式为:类名@地址
		 * 该字符串在实际开发中的意义不大,所以通常需要使用这个方法时要重写它。
		 */
//		String str=p.toString();
//		System.out.println(str);
		/*
		 * System.out.println(Object o)
		 * 该方法可以将java任何对象输出到控制台,而输出的就是该对象toString方法返回的字符串。
		 */
		System.out.println("p:"+p);
		
		Point p2=new Point(1,2);
		System.out.println("p2:"+p2);
		
		System.out.println(p==p2);
		/*
		 * Object提供的equals方法内部就是用"=="比较的,所以没有实际意义,若需要比较两个对象内部是否相同,
		 * 应当重写该方法。java提供的类都重写了equals.
		 */
		System.out.println(p.equals(p2));
		
	}
	




}

阅读更多
个人分类: java系统学习
上一篇Java_Integer
下一篇Java_RandomAccessFile
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭