第六章Java常类的使用.docVIP

  • 4
  • 0
  • 约 34页
  • 2016-12-03 发布于河南
  • 举报
第六章Java常类的使用

第六章Java常见类的使用 第六章小结提纲 Object类-equals Object类简介(单根性) java.lang包中定义的Object类是所有Java类的根父类,其中定了一些实现和支持面向机制的重要方法。任何Java对象,如果没有父类,就默认它继承了Object类。因此,实际上,以前的定义是下面的简略 public class Employee extends Object equals方法 Object类定义的equals方法用于判断某个指定的对象与当前对象(调用equals方法的对象)是否等价。数据等价的基本含义是指两个数据的值相等。 equals方法与“==”运算符的关系 1、equals()方法只能比较引用类型,“==”可以比较引用类型及基本类型 public class Test1{ public static void main(String[] args){ int a=3; Integer a1=3; System.out.println(helloworld+a1.equals(a)); } } 2、默认的equals()方法比较的是内存地址,基本等同于“==”,但对类File、String、Date及包装类来说,是比较的值而不是内存地址。 public class Test1{ public static void main(String[] args){ String a1=123; String a2=new String(123); System.out.println(helloworld+a1.equals(a2)+(a1==a2)); } } 3、“==”进行比较的时候,引用类型数据比较的是引用,即内存地址,基本类型比较的是值。 覆盖equals方法 覆盖equals方法的一般步骤如下: 1、用==检查是否参数就是这个对象的引用 2、判断要比较的对象是否为null,如果null,返回false 3、用instanceof判断参数的类型是否正确 4、把参数转换成合适的类型 5、比较对象属性值是不是匹配 示例如下: 覆盖前equals和==比较的都是内存地址: public class Test1{ public static void main(String[] args){ A a1= new A(); a1.age=3; A a2=new A(); a2.age=3; System.out.println(a1==a2 test=+(a1==a2)); System.out.println(a1 equals a2 test=+(a1==a2)); } } class A{public int age =0;} 运行结果是:a1==a2 test=false a1 equals a2 test=false 覆盖方法后的结果 import java.lang.Object; public class Test1 extends Object{ private int a=123; public static void main(String[] args){ Test1 a1= new Test1(); //a1.age=3; Test1 a2=new Test1(); //a2.age=3; //System.out.println(a1==a2 test=+(a1==a2)); System.out.println(a1 equals a2 test=+(a1.equals(a2))); } public boolean equals(Object obj){ //用==检查是否参数就是这个对象的引用 if(this == obj){ return true; } //判断要比较的对象是否为null,如果null,返回false if(obj ==null){ return false; } //用instanceof判断参数的类型是否正确 if(obj instanceof Test1){ //把参数转换成合适的类型 Test1 t=(Test1)obj; //比较对象属性值是不是匹配 if(this.a==t.a){ return true; }else{ return false; } } return true; }

文档评论(0)

1亿VIP精品文档

相关文档