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;
// }
}
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基础学习总结(7)——Object类
- java线程学习基础
- Java IO学习基础之读写文本文件
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(二)
- JAVA学习心得--基础知识
- Java学习备忘录(二)基础语法和数组(原创)
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(四):
- 回复:学习java必须有c++基础么?
- java学习笔记,关于java的一些基础知识,适用于初学者,第一节
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(一)
- Java IO学习基础之读写文本文件
- Java IO学习基础之读写文本文件
- JAVA学习笔记(基础知识)
- 安全的基础----学习java安全之前的准备
- Java基础-学习Java的30个基本概念
- java基础学习:常用的ant的操作
- 安全的基础----学习java安全之前的准备
- Java IO学习基础之读写文本文件
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(三)
- java基础学习---java对象序列化基础知识