Object类

1.1概述

java.lang.Object类是java语言中的根类,每个类都使用Object作为超类。所有对象(包括数组)都实现这个类的方法。
如果一个类没有特别指定父类,那么默认继承自Object类。例如:

public class MyClass/*extends Object*/{
}

1.2 native本地方法

在Object类的源码里定义了native修饰的方法,native修饰的方法称为本地方法。

  • 本地方法的特点:
    • 被native修饰的方法,非java语言编写,是C++语言编写的。
    • 本地方法在运行时进入本地方法栈内存,本地方法是一块独立内存的区域
    • 本地方法的意义是和操作系统进行交互
private static native void registerNatives();
	 static { 
	 	registerNatives(); 
	}

当程序运行的时候,Object类会最先被加载到内存中。类进入内存后首先加载自己的静态成员,static代码块中调用了本地方法 registerNatives() ,和操作系统进行交互。
native方法可以看做是对java方法的扩展,native方法不是由java去实现的,是由操作系统去实的.java只能调用本地方法

1.3 toString方法

方法声明: public String toString() :返回该对象的字符串表示。
Object类toString()方法源码:

public String toString(){
	return getClass().getName()+"@"+Integer.toHexString(HashCode());
}
  • getClass().getName():返回类的全限定名称
  • hashCode(): 方法返回int值,可以理解为对象的内存地址
  • Integer.toHexString():将int类型的值转成16进制
  • 调用对象的toString()方法将看到内存的地址值
  • 调用对象的toString()方法将看到内存的地址值

1.3.1 toString方法重写

public class Person{
	private String name;
	private int age;

	@Override
	public String toString(){
		return "Person"+nmae+":"+age;
	}
}

1.4 equals方法

方法声明:** public boolean equals(Object obj) **:指示其他某个对象是否与此对象“相等”。
Object类equals()方法源码:

public boolean equals(Object obj){
	return (this == obj);
}
  • this是当前对象,哪个对象调用equals方法就表示哪个对象
  • obj表述传递的参数,参数类型Object,可以传递任意类型对象
  • this == obj 比较两个对象的内存地址是否相同
    equals默认比较两个对象的内存地址是否相同,相同则返回true

1.4.1 equals方法重写

public class Person{
	private String name;
	private int age;

	public boolean equals(Object obj){
		//判断两个对象地址弱相同,即为同一个对象
		if(this == obj)
			return true;
		//obj对象为空,无需比较,返回false
		if(obj == null)
			return false;
		//obj如果是Person类型对象,则强制转换
		if(obj instanceof Person){
			Person person = (Person)obj;
			//比较两个对象的name和age属性,如果相等,返回true
			return this.name.equals(person.name) && this.age == person.age;
		}
		return false;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值