java1234开源博客系统
博客信息

Java面向对象-Object类

0
发布时间:『 2016-10-16 18:08』  博客类别:Java核心基础  阅读(6731) 评论(0)

Java面向对象-Object类


Object类是所有类的父类;


Object类的常用方法

1,public String toString() 返回该对象的字符串表示。

2,public boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”



我们上一个示例:

package com.java1234.chap03.sec14;

public class A{

	/**
	 * Object是所有类的父类
	 */
	public A() {
		super();
		// TODO Auto-generated constructor stub
	}

}


我们alt+shift+s 弹出菜单 ,然后Generate Constructors from Superclass 自动从父类生成构造方法,这里的super() 我们鼠标先移动上去

然后按住ctrl,然后点进去,会进入到Object类:

QQ鎴浘20161016171555.jpg


我们可以看到父类Object所有的方法,当然我们也可以通过ctrl+o 弹出outline,

QQ鎴浘20161016171614.jpg




接下来讲toString()方法:

我们先上一个类:

package com.java1234.chap03.sec14;

public class People {

	private String name;

	public People(String name) {
		super();
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public static void main(String[] args) {
		People p1=new People("张三");
		System.out.println(p1);
		System.out.println(p1.toString());
	}
}

 

定义了一个name属性 生成了get set方法 以及main方法测试 


运行输出:

com.java1234.chap03.sec14.People@15db9742

com.java1234.chap03.sec14.People@15db9742


输出对象,默认调用的是toString()方法;


这里我们通过修改toString()实现,来实现输出对象的结果:

@Override
public String toString() {
	// TODO Auto-generated method stub
	return super.toString();
}


这里调用的是Object默认实现,我们来修改下:

package com.java1234.chap03.sec14;

public class People {

	private String name;

	public People(String name) {
		super();
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	
	@Override
	public String toString() {
		return this.getName();
	}

	public static void main(String[] args) {
		People p1=new People("张三");
		System.out.println(p1);
		System.out.println(p1.toString());
	}
}


运行输出:

张三

张三



实际开发中,有时候也会用到;需要掌握;


最后说下equals 是比较对象的引用,是否指向同一个堆内存;

我们上下代码:

package com.java1234.chap03.sec14;

public class People {

	private String name;

	public People(String name) {
		super();
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	

	public static void main(String[] args) {
		People p1=new People("张三");
		People p2=new People("张三");
		System.out.println(p1.equals(p2));
	}
}


运行输出:

false


我们来重写下equals方法,来实现比较具体内容:

package com.java1234.chap03.sec14;

public class People {

	private String name;

	public People(String name) {
		super();
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	

	@Override
	public boolean equals(Object obj) {
		String name=((People)obj).getName();
		return this.name==name;
	}

	public static void main(String[] args) {
		People p1=new People("张三");
		People p2=new People("张三");
		People p3=new People("李四");
		System.out.println("p1.equals(p2):"+p1.equals(p2));
		System.out.println("p1.equals(p3):"+p1.equals(p3));
	}
}

运行输出:

p1.equals(p2):true

p1.equals(p3):false




关键字:   java     Object类  
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有