java中object的用法,java object的常用方法
本篇文章给大家带来了关于爪哇岛的相关知识,其中主要介绍了关于目标类的相关问题,包括了目标类是什么、对象类中的等于方法、hashCode方法等等内容,下面一起来看一下,希望对大家有帮助。
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
1.Object类是什么?
类人{}
班级学生{}
公共类测试03 {
public static void func(Object o){ }
公共静态void main(String[] args) {
func(新人());
func(新生());
}
公共静态void main 1(String[]args){
对象o=新人();
对象o2=新生();
}
}下面来看一下Object类中都有什么方法
本篇会简单介绍hashCode(),equals()
2.Object类中的equals方法
下面看这样一段代码
类别人员{
公共字符串dz;
公共人物(字符串dz) {
this.dz=dz
}
@覆盖
公共字符串toString() {
返回"人员{"
dz= dz \
};
}
}
班级学生{
}
公共类测试03 {
公共静态void main(String[] args) {
人员人员=新人(北京);
人员人员1=新人(北京);
系统。出去。println(person==person 1);
} 如果直接这样比较,看地址是否相同,就会输出假的,输出是错误的
那么如果要比较,有什么方法吗
系统。出去。println(人。等于(人1));如果直接在主要的中这样写,还是会输出假的,
这是因为人里面没有等于,默认是继承于目标的
可以看到里面比较的还是这和obj,也就是当前传进来的参数,所以才是错误。
那么如何用等于进行比较
@覆盖
公共布尔等于(对象对象){
//判断当前目标文件参数是否为空
if (obj==null) {
返回错误的
}
if (this==obj) {
返回真实的
}
//不是人类对象
如果(!(人的对象实例)){
返回错误的
}
Person ret=(Person)obj;
返回这个。dz。等于(ret。dz);
}
此时等于就可以比较了
3.Object类中的hashCode方法
,
下面重写一下hashCode,
@覆盖
public int hashCode() {
返回对象。哈希(dz);
}然后运行代码试试看,果然重写之后,内存地址相同了
4.编译器自动生成equals和hashCode
一般重写时,都是这两个同时进行重写
这就是生成好了的等于和散列码
@覆盖
public boolean equals(Object o) {
如果(this==o)返回真实的
if (o==null getClass()!=o.getClass())返回错误的
Person person=(人)o;
返回Objects.equals(dz,person。dz);
}推荐学习: 《java视频教程》 以上就是爪哇中的目标类知识点归纳的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。