有关Object类种种

来源:互联网 发布:hbase java api 编辑:程序博客网 时间:2024/06/04 01:31

Object类是所有Java类的顶层类,所有的类都默认继承了Object类,所以,所有类也都可以使用Object类中的一些方法。下面介绍Object类的一些常用的方法。

equals方法

public boolean equals(Object obj) 用于比较一个类的两个对象是否是同一个内容,与"=="不同的支出在于"=="比较的是两个对象是否引用的同一个对象,而equals方法是比较两个对象的内容是否一致。

package com.cc.demo;public class ObjectDemo {public static void main(String[] args) {//新建两个内容相同,但是地址不同的String对象String str1 = new String("Hello World");String str2 = new String("Hello World");//两个String引用,引用了同一个对象String str3 = "Hello World";String str4 = "Hello World";//使用两种方法比较两个内容相同,地址不同的String对象System.out.println("内容相同,地址不同,使用==的结果是"+(str1==str2));System.out.println("内容相同,地址不同,使用equals方法的结果是"+str1.equals(str2));//使用两个方法比较两个应用相同的String对象System.out.println("内容相同,地址不同,使用==的结果是"+(str3==str4));System.out.println("内容相同,地址不同,使用equals方法的结果是"+str3.equals(str4));}}

打印结果是:


toString方法

public String toString()方法:Object对象调用该方法返回一个能代表当前对象本身的String类型,但默认的toString方法返回的数据在使用上没有太大意义,一般Object的子类都会重写该方法,用来返回更有价值的,简单易懂的字符串。

package com.cc.demo;import java.util.Date;class Report{private String title;private String content;private Date date;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}@Overridepublic String toString() {return "Report [title=" + title + ", content=" + content + ", date="+ date + "]";}}public class ObjectDemo {public static void main(String[] args) {//新建一个Report对象,并赋值Report report = new Report();report.setTitle("我在写代码");report.setContent("我写的代码都不怎么样啊,需要提高的太多了");report.setDate(new Date());//使用该类的toString方法System.out.println(report.toString());}}

打印结果如图:


getClass方法

public final Class getClass(),对象调用该方法返回Class类型的运行类,java虚拟机在装在一个对象,都会产生一个Class对象,该对象包含了所装载类的元信息,,如类的名字、属性、方法、构造函数和父类等。

package com.cc.demo;import java.lang.reflect.Method;import java.util.Date;class Report{private String title;private String content;private Date date;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}@Overridepublic String toString() {return "Report [title=" + title + ", content=" + content + ", date="+ date + "]";}}public class ObjectDemo {public static void main(String[] args) {//新建一个Report对象,并赋值Report report = new Report();report.setTitle("我在写代码");report.setContent("我写的代码都不怎么样啊,需要提高的太多了");report.setDate(new Date());//返回该对象所属类的信息System.out.println("该对象的类型是:"+report.getClass());//返回包名System.out.println("该类的包名是:"+report.getClass().getPackage());//返回方法Method[] methods = report.getClass().getDeclaredMethods();for(Method method:methods){System.out.println("该类的方法有:"+method.toString());}}}

打印方法如下,有关该方法更多解释,请查看有关java反射机制的知识



1 0