java学习日记——Object类II
java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料
保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。
2,equals方法
比较的是对象的引用是否指向同一块内存地址。
然而一般情况下,比较两个对象是比较两个对象的值是否一致!
所以我们可以重写equals方法来比较两个对象的值是否一致。
样例代码(没重写equals方法):
父类:
1 2 3 4 5 6 7 8 9 10 11 12 | package com.imooc; public class Animal { public int age = 90 ; public int weight = 45 ; public void bark() { System.out.println( "I can bark" ); } } |
子类:
1 2 3 4 5 6 7 8 9 10 11 12 | package com.imooc; public class Dog extends Animal { int age = 50 ; int weight = 60 ; public void bark() { System.out.println( "I can bark loudly!" ); } } |
测试类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package com.imooc; public class Initial { public static void main(String[] args) { Dog LittleDog = new Dog(); Dog BigDog = new Dog(); if (LittleDog.equals(BigDog)) { System.out.println( "两只狗相同!" ); } else { System.out.println( "两只狗不同!" ); } } } |
运行结果:
重写子类里的equals方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package com.imooc; public class Dog extends Animal { int age = 50 ; int weight = 60 ; public void bark() { System.out.println("I can bark loudly!"); } @Override public boolean equals(Object obj) { if ( this == obj) return true ; if (obj == null ) return false ; if (get<a href= "http://www.cfei.net/archives/tag/class" title= "浏览关于“Class”的文章" target= "_blank" class = "tag_link" >Class</a>() != obj.getClass()) return false ; Dog other = (Dog) obj; if (age != other.age) return false ; if (weight != other.weight) return false ; return true ; } } |
运行结果:
哈哈,待会去家教,现在些篇博客消遣一下!
加油,pjr!
因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。
后续会有更多的精彩的内容分享给大家。