黑马程序员----Object类的eguals()和toString()方法
2015-03-28 20:25
579 查看
-------
android培训、java培训、期待与您交流! ----------
翻阅API文档发现有以下一些方法:
以上代码就是实现了Object中的equal()方法。
当我们需要在自己的类中定义比较方法时,利用继承的思想,只要复写Object类中的比较方法,我们先写下面代码:
package xiaobing.study; class Demo{//class Demo extends Object private int num; Demo(int num){ this.num=num; } public boolean equals(Object obj){ return this.num==obj.num; } } public class ObjectDemo1 { public static void main(String[] args){ Demo d1=new Demo(); Demo d2=new Demo(); Demo d3=d1; System.out.println(d1==d2); System.out.println(d1==d3); System.out.println(d1.equals(d3)); } }
发现以上代码根本无法通过编译,这时由equals方法传入的对象类型为Object而这个类中不存在num,修改如下:
PS:以上实例是传入本类比较,当传入其他类时就需要应用instanceof关键字进行判断,如下:
package xiaobing.study; class Demo{//class Demo extends Object private int num; Demo(int num){ this.num=num; } public boolean equals(Object obj){//Object d=new Demo(); if(obj instanceof Demo)//instanceof应用 return false; Demo d=(Demo) obj; return this.num==d.num; } } class Person{ } public class ObjectDemo1 { public static void main(String[] args){ Demo d1=new Demo(4); Demo d2=new Demo(5); Person p=new Person(); System.out.println(d1.equals(p)); } }
package xiaobing.study;
class StringDemo{
}
public class ToStringDemo {
public static void main(String[] args){
StringDemo d1=new StringDemo();
System.out.println(d1.toString());
}
}
android培训、java培训、期待与您交流! ----------
Object类的eguals()和toString()方法
一,概念
Object类是所有对象的直接或者间接父类,“传说中的上帝”,该类中定义的肯定是所哟对象的功能。也就是说任意一个对象一旦建立,就具备Object类中的方法。翻阅API文档发现有以下一些方法:
二、equal()方法
java规定所有的对象都具备比较比较性,都能比较俩对象是否相同,亦即所有对象都继承Object类。举例如下:package xiaobing.study; class Demo{//class Demo extends Object } public class ObjectDemo1 { public static void main(String[] args){ Demo d1=new Demo(); Demo d2=new Demo(); Demo d3=d1; System.out.println(d1==d2); System.out.println(d1==d3); System.out.println(d1.equals(d3)); } }
package xiaobing.study; class Demo{//class Demo extends Object } public class ObjectDemo1 { public static void main(String[] args){ Demo d1=new Demo(); Demo d2=new Demo(); Demo d3=d1; System.out.println(d1==d2); System.out.println(d1==d3); System.out.println(d1.equals(d3)); } }
以上代码就是实现了Object中的equal()方法。
当我们需要在自己的类中定义比较方法时,利用继承的思想,只要复写Object类中的比较方法,我们先写下面代码:
package xiaobing.study; class Demo{//class Demo extends Object private int num; Demo(int num){ this.num=num; } public boolean equals(Object obj){ return this.num==obj.num; } } public class ObjectDemo1 { public static void main(String[] args){ Demo d1=new Demo(); Demo d2=new Demo(); Demo d3=d1; System.out.println(d1==d2); System.out.println(d1==d3); System.out.println(d1.equals(d3)); } }
package xiaobing.study; class Demo{//class Demo extends Object private int num; Demo(int num){ this.num=num; } public boolean equals(Object obj){ return this.num==obj.num; } } public class ObjectDemo1 { public static void main(String[] args){ Demo d1=new Demo(); Demo d2=new Demo(); Demo d3=d1; System.out.println(d1==d2); System.out.println(d1==d3); System.out.println(d1.equals(d3)); } }
发现以上代码根本无法通过编译,这时由equals方法传入的对象类型为Object而这个类中不存在num,修改如下:
package xiaobing.study; class Demo{//class Demo extends Object private int num; Demo(int num){ this.num=num; } public boolean equals(Object obj){//Object d=new Demo(); Demo d=(Demo) obj; //多态的应用 return this.num==d.num; } } public class ObjectDemo1 { public static void main(String[] args){ Demo d1=new Demo(4); Demo d2=new Demo(5); Demo d3=d1; System.out.println(d1==d2); System.out.println(d1==d3); System.out.println(d1.equals(d3)); } }
package xiaobing.study; class Demo{//class Demo extends Object private int num; Demo(int num){ this.num=num; } public boolean equals(Object obj){//Object d=new Demo(); Demo d=(Demo) obj; //多态的应用 return this.num==d.num; } } public class ObjectDemo1 { public static void main(String[] args){ Demo d1=new Demo(4); Demo d2=new Demo(5); Demo d3=d1; System.out.println(d1==d2); System.out.println(d1==d3); System.out.println(d1.equals(d3)); } }
PS:以上实例是传入本类比较,当传入其他类时就需要应用instanceof关键字进行判断,如下:
package xiaobing.study; class Demo{//class Demo extends Object private int num; Demo(int num){ this.num=num; } public boolean equals(Object obj){//Object d=new Demo(); if(obj instanceof Demo)//instanceof应用 return false; Demo d=(Demo) obj; return this.num==d.num; } } class Person{ } public class ObjectDemo1 { public static void main(String[] args){ Demo d1=new Demo(4); Demo d2=new Demo(5); Person p=new Person(); System.out.println(d1.equals(p)); } }
package xiaobing.study; class Demo{//class Demo extends Object private int num; Demo(int num){ this.num=num; } public boolean equals(Object obj){//Object d=new Demo(); if(obj instanceof Demo)//instanceof应用 return false; Demo d=(Demo) obj; return this.num==d.num; } } class Person{ } public class ObjectDemo1 { public static void main(String[] args){ Demo d1=new Demo(4); Demo d2=new Demo(5); Person p=new Person(); System.out.println(d1.equals(p)); } }
三、toString()方法
java认为所有对象都可以变为字符串形式体现,只要通过toString()方法实现,代码如下:package xiaobing.study;
class StringDemo{
}
public class ToStringDemo {
public static void main(String[] args){
StringDemo d1=new StringDemo();
System.out.println(d1.toString());
}
}
相关文章推荐
- 黑马程序员:Object类和equals、toString方法介绍
- object类的toString方法
- Object类以及子类的toString()方法的使用及重写
- 黑马程序员-----Object类中的重要方法总结*
- [Java]Object类的toString()方法
- 黑马程序员 Java基础 面向对象:继承、final关键字、抽象类、模版方法模式、接口、多态、Object类
- Object类学习 equals() 方法和toString()方法覆写
- Object类中的toString和equal方法
- java Object类中的toString方法
- 黑马程序员 toString()方法
- 黑马程序员---jar包 jar命令。 开发工具eclipse,使用方法,和技巧。Object类的特性
- 马士兵J2SE-第三章-面向对象-Object类:toString方法、equals方法、对象转型、抽象类抽象方法、final关键字、接口
- Object类的toString方法
- 34_Object类之toString方法.avi -
- 这样覆写Object类的toString方法对吗
- Object类的toString方法
- Object类中的equals与toString方法概述
- 第03章 面向对象 34 Object类之toString方法
- Object类的toString方法
- 黑马程序员--线程之间的通信,等待与唤醒机制,线程的终止方式,线程中的其他方法,优先级,toString() 守护线程,GUI图形化界面