源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java中object类实例分析

  • 时间:2020-06-15 09:05 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java中object类实例分析
问:什么是Object类? 答:Object类存储在java.lang包中,是所有java类(Object类除外)的终极父类。当然,数组也继承了Object类。然而,接口是不继承Object类的,Object类不作为接口的父类。 下面,我们就通过实例,对object进行分析
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(Object 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+"]";
 }
}
[b]总结[/b] 以上就是本文关于java中object类实例分析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站: [url=http://www.1sucai.cn/article/130533.htm][u][b]java内部测试类代码详解[/b][/u][/url] [url=http://www.1sucai.cn/article/130523.htm][u][b]java中继承测试代码分析[/b][/u][/url] [url=http://www.1sucai.cn/article/130374.htm][u][b]java中stack(栈)的使用代码实例[/b][/u][/url] 如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部