API帮助文档(二)

一.Object

Object是Java中的顶级父类,所有类都直接或者二间接的继承Object类。

Object类的方法可以被所有子类访问。

一.Object的构造方法:

没有带参构造,只有一个空参构造

原因是在Java中只有子类的共性才会往父类中抽取,但是Object是Java中的顶级父类,没有一个属性是所有子类都有的,所以没有成员变量,自然没有带参构造方法。

二.Object的成员方法:

1.toString();

对于打印结果java.lang.Object@776ec8df

java.lang是包名

Object是类名

@是固定合适

776ec8df是对象的地址值

toString();的源代码

当我们直接打印时

我们发现调用方法和不调用方法打印结果一样

是因为printfln();方法的源代码里面也有一个toString();

因为默认情况下Object类中的toString方法返回地址值

所以我们打印的就是地址值。

当我们想要得到属性时,就要重写toString;

我们创建一个Student类,重写toString方法

此时我们再次创建对象,就可以打印内部的属性值。

总结:

如果我们打印一个对像想要看到属性值,只需要重写toString方法,返回值把属性拼接即可。

我们可以使用ptg插件自动完成

2.equals();

比较两个对象是否相等。

举个例子

为什么输出false呢?

首先我们没有在Student里面重写equals所以要看Object类中的源代码

可以发现他是使用==来进行判断的,==判断的是地址值,所以输出false。、

而我们一般比较地址值。

当我们父类方法不能满足需求,就要重写方法

我们在Student中按下ALT+INS

重写之后就比较属性值了

结论:如果没有重写equals方法,默认比较地址值

当我们需要比较属性值,就要去重写

小练习:

思考一下,输出的是什么

可以看到全是false

因为第一个被s调用,s是字符串,所以在String中的toString的源代码

他表示先判断是否为字符串,如果是字符串在比较内部属性,如果不是则直接返回false;

第二个调用者sb是StringBuilder。

所以要看StringBuilder中的toString,因为StringBuilde里面并没有重写toString方法,所以默认调用Object类中的toString方法

而这里sb 和 s地址值不同,所以返回false

两个返回虽然都是false,但是原因不同。

3.clone();

对象克隆,把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制。

我们先创建有以下属性的Javabean类

我们无法直接通过对象调用clone方法,要在Student中重写

并且添加一个接口

对于这个接口

我们可以开始克隆

关宇克隆对象

方法会在底层帮我们创建一个对象,并把原来的对象拷贝过去

书写细节

1.重写Object类中的clone

2.让你的Javabean类实现Cloneable接口

3.创建原对象并调用clone既可以了。

Java的克隆有两种方式

第一种:浅克隆/浅拷贝

这种拷贝方式

对于基本数据类型,直接把属性值拷贝过去

对于引用数据类型,是把地址值拷贝过去,(字符串/数组等等)

对于数组而言,两个对象指向一个数组,这样会有一个特点

当其中一个对象进行修改,另外一个也会更改

第二种:深克隆/深拷贝

这种拷贝方式

对于基本数据类型,直接把属性值拷贝过去

因为字符串只要不是new出来的就会在串池进行管理,所以会进行复用

对于数组(和其他引用数据类型)而言会在创建一个数组,把数组的值拷贝过去(新的与原来的互不干涉)

系统默认就是浅克隆

进行深克隆的方法:使用第三方工具gson

三.关于Object的总结

相关推荐
独立开阀者_FwtCoder4 分钟前
国外最流行的 UI 组件库!适配 Vue、React、Angular!
前端·vue.js·后端
勇哥java实战分享7 分钟前
聊聊 RocketMQ 4.X 知识体系
后端
CodeSheep11 分钟前
小米汽车这薪资是认真的吗?
前端·后端·程序员
今天背单词了吗98014 分钟前
算法学习笔记:8.Bellman-Ford 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·后端·算法·最短路径问题
天天摸鱼的java工程师17 分钟前
使用 Spring Boot 整合高德地图实现路线规划功能
java·后端
阿杆18 分钟前
😡同事查日志太慢,我现场教他一套 grep 组合拳!
linux·后端
PetterHillWater19 分钟前
基于Trae智能复杂项目重构实践
后端·aigc
凌览33 分钟前
有了 25k Star 的MediaCrawler爬虫库加持,三分钟搞定某红书、某音等平台爬取!
前端·后端·python
这里有鱼汤44 分钟前
给你的DeepSeek装上实时行情,让他帮你炒股
后端·python·mcp
咖啡啡不加糖1 小时前
暴力破解漏洞与命令执行漏洞
java·后端·web安全