⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 09_object_day05.txt

📁 达内科技上课的 java学习笔记 分为18天学完
💻 TXT
字号:
Object
	clone
		Object类的clone()方法.覆盖之后调用父类的clone()方法,完成对protect属性或方法的调用.
		对象的克隆里面还要注意:
			让一个对象可以拷贝,有两个工作:
				1.覆盖Object方法.
				2.实现Cloneable接口,表示这个类可以被克隆.
				接口中如果没有方法,那么它被称为标记接口,它仅仅是为了标记的作用没有实际的含义.功能接口是为了扩展一个类的功能,有具体的方法.
		除了实现克隆之外克隆还有两种形式:浅拷贝和深拷贝.
		浅拷贝:
			拷贝对象的时候,基本类型的属性完成拷贝,对象类型的拷贝只拷贝了引用值.
		深拷贝:
			拷贝对象时候,把对象类型的属性重新创建一份拷贝过来.
		例子 
			CloneTest 					
			Animal 
				Person owner
			Person 
	标记接口
		Cloneable接口,意义是让instanceof标识符可用.
	
	
	equals
		判断当前对象和参数中的对象是否相等,
		再Object中定义的equals方法返回的就是用==判断的结果.
		这里的意思是,所有类的对象都能够去比较的,但是具体对象的判断是否相当是不能确定的,所以这个是否相等的判断规则需要由类的定义者类实现的.

		所以我们需要去覆盖这个Object对象equals方法给我定义的类来判断两个对象是否相等.

		注意形参传入的Object对象:在方法内部要做强制类型转换.参数Object类型不可以改变,改变了就为背了方法覆盖的原则.

		比较相等的前提就是比较他们是否是同一个类型的对象.instanceof

		equals方法的覆盖java提出了一些约定:约定俗成
			在Object文档中由规范的具体描述.
			equals 方法在非空对象引用上实现相等关系:
				自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。 
				对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。 
				传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。 
				一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。 
				对于任何非空引用值 x,x.equals(null) 都应返回 false
	finalize
		当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写 finalize 方法,以配置系统资源或执行其他清除。 
		一个对象在被垃圾回收器之前被调用一次,一般情况下把一些释放资源的代码写在这里.
	
	toString
		返回对这个对象的一个字符串的描述.
		在程序中直接的输出一个对象,在任何情况下,我们希望得到对象的字符串的描述,那么就会去调用对象的这个方法.

	还剩7个在后面的课程里面是都会一一讲到的.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -