java中object类实例分析

 更新时间:2017年12月14日 09:44:02   作者:静夜思乡  
这篇文章主要介绍了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+"]";
	}
}

总结

以上就是本文关于java中object类实例分析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

java内部测试类代码详解

java中继承测试代码分析

java中stack(栈)的使用代码实例

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • java版微信公众平台后台接入

    java版微信公众平台后台接入

    这篇文章主要为大家详细介绍了java版微信公众平台后台接入,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 基于springEL表达式详解及应用

    基于springEL表达式详解及应用

    这篇文章主要介绍了springEL表达式详解及应用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Spring中Bean的加载与SpringBoot的初始化流程详解

    Spring中Bean的加载与SpringBoot的初始化流程详解

    这篇文章主要介绍了Spring中Bean的加载与SpringBoot的初始化流程详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java移动文件夹及其所有子文件与子文件夹

    Java移动文件夹及其所有子文件与子文件夹

    这篇文章主要为大家详细介绍了Java移动文件夹及其所有子文件与子文件夹的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Presto自定义函数@SqlNullable引发问题详解

    Presto自定义函数@SqlNullable引发问题详解

    这篇文章主要为大家介绍了Presto自定义函数@SqlNullable引发问题详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • java模拟TCP通信实现客户端上传文件到服务器端

    java模拟TCP通信实现客户端上传文件到服务器端

    这篇文章主要为大家详细介绍了java模拟TCP通信实现客户端上传文件到服务器端,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Java冒泡排序详解(附有详细代码)

    Java冒泡排序详解(附有详细代码)

    冒泡排序是一种简单的排序算法,通过相邻元素的比较和交换来实现,它虽然在效率上不如其他排序算法,但在某些特定场景下仍然有其应用价值,这篇文章主要介绍了Java冒泡排序的相关资料,文中给出了详细的代码示例,需要的朋友可以参考下
    2025-04-04
  • 详解Java数字签名提供XML安全

    详解Java数字签名提供XML安全

    在本篇文章中我们给大家整理了关于Java数字签名提供XML安全的知识点内容,有需要的朋友们可以学习下。
    2018-08-08
  • Java面试题解析之判断以及防止SQL注入

    Java面试题解析之判断以及防止SQL注入

    这篇文章主要介绍了Java面试题解析之判断以及防止SQL注入,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Java对象进行深拷贝的五种方法实例代码

    Java对象进行深拷贝的五种方法实例代码

    这篇文章主要介绍了Java对象进行深拷贝的五种方法,分别是构造函数、重载clone()方法、Apache Commons Lang序列化、Gson序列化和Jackson序列化,每种方法都给出了实例代码,需要的朋友可以参考下
    2025-04-04

最新评论