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(栈)的使用代码实例

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

(0)

相关推荐

  • Java源码解析之object类

    在源码的阅读过程中,可以了解别人实现某个功能的涉及思路,看看他们是怎么想,怎么做的.接下来,我们看看这篇Java源码解析之object的详细内容. Java基类Object java.lang.Object,Java所有类的父类,在你编写一个类的时候,若无指定父类(没有显式extends一个父类)编译器(一般编译器完成该步骤)会默认的添加Object为该类的父类(可以将该类反编译看其字节码,不过貌似Java7自带的反编译javap现在看不到了). 再说的详细点:假如类A,没有显式继承其他类,编译

  • 关于Java中Object类的几个方法示例

    前言 Java语言不同于C++语言,是一种单根继承结构语言,也就是说,Java中所有的类都有一个共同的祖先.这个祖先就是Object类. Object类被称为上帝类,也被称为祖宗类.在定义Java类时,如果没有指定父类,那么默认都会去继承Object类.配合Java的向上类型转换,借助Object类就可以完成很多工作了. object类的结构 Object类的方法 在Object类中,有几个常用的方法,比如getClass().toString()和equals()这三个方法.它们在Object

  • Java中的Object类详细介绍

    理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省略了extends Object关键字. 该类中主要有以下方法: toString(),getClass(),equals(),clone(),finalize(), 其中toString(),getClass(),equals是其中最重要的方法. 注意: Object类中的getClass(),notify(),notifyAll(),wait()等方法被定义为f

  • 简介Java编程中的Object类

    Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: public class Demo{ // ... } 实际上是下面代码的简写形式: public class Demo extends Object{ // ... } 在Java中,只有基本类型不是对象,例如数值.字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还是基本类型数组都是继承自

  • 详谈Java中Object类中的方法以及finalize函数作用

    Object是所有类的父类,任何类都默认继承Object. 一.Object类中的方法 1.clone方法 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常. 主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里讲参数改变,这是就需要在类中复写clone方法. 2.getClass方法 final方法,获得运行时类型. 3.toString方法 该方法

  • 浅谈javaSE 面向对象(Object类toString)

    每一个对象,都有一个在内存中的地址哈希值,这个哈希值是十六进制的 调用Object对象的hashCode()方法,返回这个对象的哈希值 调用Integer.toHexString()方法,转换十六进制 调用Object对象的toString()方法,得到:类名@哈希值 通常我们会复写toString()方法,因为默认的没有太大意义 实现原理是类的反射 当我们创建一个对象,会在硬盘上生成xxx.class的文件,jdk定义了Class类来描述这些class文件 调用Object对象的getClas

  • Java Object类详解_动力节点Java学院整理

    Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java中最基本的类java.lang.Object开始谈起. Object类是Java中其他所有类的祖先类,没有Object类Java面向对象无从谈起.作为其他所有类的基类,Object具有哪些属性和行为,是Java语言设计背后的思维体现. Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入.Object类没有定义属性,一共有13个方法,具体的类定义结构如下图: 1.类构造

  • Java中父类Object的常用方法总结

    简介 Object类: 这个类java.lang.java是所有类默认继承的父类 Object类中常用的三个方法:toString() , equal() , hashCode() 一.toString()方法 对象的自我描述,对象的自我介绍 在对象的自我描述过程中,由于使用get()方法打印实例变量比较麻烦,为了简便,使用toString() . Public String toString(){ Return "学好" + getNo() + "姓名" + ge

  • java之Object类用法实例

    本文实例讲述了java中Object类用法.分享给大家供大家参考.具体如下: 1.Object类是所有java类的基类 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类,ex: public class Person{ ~~~~~ } 等价于 public class Person extends Object{ ~~~~~ } 2.Object类之equals方法 ①.Object类中定义有: public boolean equals(Object obj)方

  • java基础之Object类

    Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: public class Demo{ // ... } 实际上是下面代码的简写形式: public class Demo extends Object{ // ... } 在Java中,只有基本类型不是对象,例如数值.字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还是基本类型数组都是继承自

随机推荐