有关Object类种种
2017-01-06 21:28
162 查看
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;
}
@Override
public 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;
}
@Override
public 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反射机制的知识
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;
}
@Override
public 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;
}
@Override
public 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反射机制的知识
相关文章推荐
- 有关java object类的toString方法
- 【有关数据库的问题】运行时错误‘3706’:未找到提供程序。该程序可能未正确安装。
- 有关GroupBox和RadioButton
- C语言中那些与顺序有关的内容汇集--持续更新中
- 有关List<Map<String, Object>>解析
- 有关程序打包
- 继承时有关构造函数要注意的一些问题
- 有关触发器的疑问:???
- Object类wait,notify,notifyAll的使用
- 有关多线程的一些技术问题
- asp.net c# lock 有关
- 运行地址,链接地址,加载地址,存储地址 位置无关码、位置有关码
- JAVA中Object类有哪些方法
- 两个有关IIS的问题
- 15、Object类详解
- 对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。
- 有关sqlYog(Mysql)中文乱码的问题
- 与函数有关的优化——读书笔记[Linux程序设计大全]
- 有关银行验证的代码共享
- 有关服务器的几个疑问?