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

java中Object类测试总结

2017-12-13 22:25 246 查看
public class ObjectStu {

/*Object类:java里所有类的父类,顶层的类

 *equals:判断两个对象是否"相等";

 *hashcode:返回一个对象的哈希码值,是一个整数

 *因为之后的容器,例如hashset和hashMap会对元素进行去重的处理;所以equals和hashcode需要同时重写;

 *重写之后需要满足的标准:

 *当equals的结果为true的时候,要求两个对象的hashcode值相等;

 *当equals的结果为false的时候,要求两个对象的hashcode值不等;(hashcode可以相等,但是如果不等可以提升效率)

 *toString:返回对象的字符串表示

 *作用:方便程序内查看对象属性,方便调试代码

 *debug学习:

 *1.在可能出现bug的地方设置断点

 *2.run as debug

 *3.f6,执行当前代码;f5,进入当前本句代码的方法内部;f8,快速跳到下一个断点,如果没有下一个断点,运行余下所有代码

 *equals:

 *1.一致性:使用对象A调用equals和对象b进行比较,每一次的结果都应该一样

 *2.自反性:对象A调用equals比较对象b和对象b调用equals比较对象a的结果应该一样

 */

 public static void main(String[] args)

 {

  Person per = new Person("小王",10,150);

  Person per1 = new Person("小王",20,140);

  Person per2 = per;

  System.out.println(per==per1);

  System.out.println(per.equals(per1));

  String str = "123";

  str.equals("123");

  str.hashCode();

  System.out.println(per.hashCode());

  System.out.println(per1.hashCode());

  System.out.println(per2.hashCode());

  System.out.println(per);

  System.out.println(per1);

 }

}

 class Person {

 String name;

 int age;

 int height;

 public Person(String name, int age,int height)

 {

  super();

  this.height = height;

  this.name = name;

  this.age = age;

 }

 /*@Override

 public boolean equals(Object obj)

 {

  if(this==obj){

   return  true;

  }

  if(obj instanceof Person){

   Person per = (Person)obj;

   if(this.name.equals(per.name)&&this.age==per.age){

    return true;

   }

  }

  return false;

 }*/

 //重写hashcode

 /*@Override

 public int hashCode(){

  return name.hashCode()+age*31+height*31;

 }*/

 @Override

 public int hashCode()

 {

  final int prime = 31;

  int result = 1;

  result = prime * result + age;

  result = prime * result + height;

  result = prime * result + ((name == null) ? 0 : name.hashCode());

  return result;

 }

 @Override

 public boolean equals(Obj
4000
ect obj)

 {

  if (this == obj)

   return true;

  if (obj == null)

   return false;

  if (getClass() != obj.getClass())

   return false;

  Person other = (Person) obj;

  if (age != other.age)

   return false;

  if (height != other.height)

   return false;

  if (name == null)

  {

   if (other.name != null)

    return false;

  } else if (!name.equals(other.name))

   return false;

  return true;

 }

 @Override

 public String toString()

 {

  return "Person[name="+name+",age="+age+"]";

 }

}

更多java知识学习请访问:How2J 的 Java教程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: