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

JAVA学习之Object基础

2017-03-13 20:32 246 查看
package com.jd;

public class ObjectTest {

/**
*Object类学习
*1、Object类是所有类的祖宗,当我们写一个类的时候,没有显示的继承一个类的时候,
*  默认继承了object类,包括数组
*2、任何一个类都会拥有object类的方法
*3、Object obj=new 任何类型();
*4、object类中的tostring方法,用来表示对象的字符串形式,如果想要我们能看懂的信息
*  可以重写toString方法
*5、equals 方法在非空对象引用上实现相等关系: 

自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。 

对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。 

传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。 

一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。 

对于任何非空引用值 x,x.equals(null) 都应返回 false。
*/

public static void main(String[] args) {
// TODO Auto-generated method stub
Bird bird=new Bird("小白", "白色", "男的");
Bird b1=new Bird("小白", "白色", "男的");
System.out.println(bird);
System.out.println(bird.equals(b1));
}

}

class Bird{
private String name;
private String color;
private String sex;
public Bird(String name, String color, String sex) {
super();
this.name = name;
this.color = color;
this.sex = sex;
}

//重写equals方法
public boolean equals(Object obj){
if(obj==null){//如果obj为空,则直接返回false,任何一个东西和空比较,肯定是false
return false;
}
if(obj.getClass()!=this.getClass()){//如果不是一个类的对象相比较,就返回false,就好像一个狗和一个猫永远不会相等
return false;
}
Bird b=(Bird) obj;
if(!this.name.equals(b.name)){
//this.name类型为String,在比较的时候,会把obj强制转换为String,然后把字符串一个一个的比较
return false;
}
if(!this.color.equals(b.color)){
return false;
}
if(!this.sex.equals(b.sex)){
return false;
}
return true;
}

//重写toString方法
public String toString(){
return "name="+name+",color="+color+",sex="+sex;
}

// public String getInfo(){

// return "name="+name+",color="+color+",sex="+sex;

// }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java Object