您的位置:首页 > 移动开发 > Objective-C

java学习之路---Object类

2013-11-19 13:19 176 查看
在java中所有的类都有一个父类就是Object类

这里只重写toString  和equals 方法



public class ToStringTest
{

     

     public static void main(String[]
args) {

          System. out.println("toString" .toString());

          System. out.println("toString" );

     }

}

结果:

toString

toString

结果发现,在字符串在调用toString之后没有变化,这说明类已经继承Object 

所以下面的代码就是来重写ToString 方法

public class ToStringTest1
{
[align=left]     private String name;[/align]
[align=left]     private int age ;[/align]
[align=left]     [/align]
     public ToStringTest1(String
name, int age) {
           this.name =
name;
           this.age =
age;
[align=left]     }[/align]
[align=left]
[/align]
     public String
getName() {
[align=left]           return name ;[/align]
[align=left]     }[/align]
[align=left]
[/align]
     public void setName(String
name) {
           this.name =
name;
[align=left]     }[/align]
[align=left]
[/align]
     public int getAge()
{
[align=left]           return age ;[/align]
[align=left]     }[/align]
[align=left]
[/align]
     public void setAge(int age)
{
           this.age =
age;
[align=left]     }[/align]
[align=left]
[/align]
     public static void main(String[]
args) {
              System. out.println(new ToStringTest1("like" ,
20));
[align=left]     }[/align]
[align=left]
[/align]
[align=left]     @Override[/align]
     public String
toString() {
[align=left]          [/align]
           return "名字:" +this.name+"
年龄:"+ age;
[align=left]     }[/align]
[align=left]     [/align]
[align=left]     [/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]结果:[/align]

[align=left]名字:like 年龄:20[/align]
[align=left]
[/align]
[align=left]重写 equals  [/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]Object 类中原来的equals 是比较地址的[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]现在来重写这个方法[/align]
[align=left]
[/align]

[align=left]public class ToStringTest2 {[/align]
[align=left]     [/align]
[align=left]     private String userName;[/align]
[align=left]     [/align]
     public ToStringTest2(String
userName) {
           this.userName =
userName;
[align=left]     }[/align]
[align=left]
[/align]
[align=left]     /*源码[/align]
[align=left]      *   public boolean equals(Object obj) {[/align]
[align=left]        return (this == obj);[/align]
[align=left]    }[/align]
[align=left]      *[/align]
[align=left]      * */[/align]
[align=left]     @Override[/align]
     public boolean equals(Object
obj) {
[align=left]          [/align]
[align=left]           if(this ==obj){[/align]
[align=left]               return true ;[/align]
[align=left]          }[/align]
[align=left]          [/align]
[align=left]          [/align]
[align=left]           if(!(obj instanceof ToStringTest2 )){//判断传进来的是否是ToStringTest2的实例,如果不是,则直接返回false[/align]
[align=left]               return false ;[/align]
[align=left]          }[/align]
[align=left]          [/align]
[align=left]           ToStringTest2 per=(ToStringTest2 )obj;//向下转型[/align]
[align=left]          [/align]
[align=left]           if(per.userName .equals(this.userName)){[/align]
[align=left]               return true ;[/align]
[align=left]          } else{[/align]
[align=left]               return false ;[/align]
[align=left]          }[/align]
[align=left]          [/align]
[align=left]          [/align]
[align=left]          [/align]
[align=left]          [/align]
[align=left]          [/align]
[align=left]     }[/align]
[align=left]
[/align]
     public static void main(String[]
args) {
[align=left]          [/align]
[align=left]           ToStringTest2 p1=new ToStringTest2 ("like" );[/align]
[align=left]           ToStringTest2 p2=new ToStringTest2 ("li" );[/align]
[align=left]          [/align]
[align=left]           ToStringTest2 p11=new ToStringTest2 ("like" );[/align]
[align=left]          [/align]
[align=left]           ToStringTest2 p22=new ToStringTest2 ("like" );[/align]
[align=left]          System. out.println("p1和p2是否相等:" +p1.equals(p2));[/align]
[align=left]          System. out.println("p11和p22是否相等:" +p11.equals(p22));[/align]
[align=left]     }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]结果:[/align]

[align=left]p1和p2是否相等:false[/align]
[align=left]p11和p22是否相等:true[/align]

补充说明下:由于所有的类都是Object的类,所以Object可以用来接收所有的对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: