黑马day03oop-app3

本文详细介绍了Java编程中的多态概念,包括编译时的静态绑定和运行时的动态绑定。此外,讨论了内部类的不同类型和使用场景,以及匿名内部类的特性与作用。枚举的使用和泛型的概念、作用以及泛型的擦除问题也被提及。文章还涵盖了Object类的重要方法,如equals和toString,以及对象的深克隆和浅克隆的区别。最后,提到了Objects工具类的一些实用方法。
摘要由CSDN通过智能技术生成

编译时多态:静态绑定 【方法的重载】

运行时多态:动态绑定【方法的重写】

内部类

是类的五大成分之一,如果一个类定义在另一个类的内部,这个类就是内部类

场景:当一个类的内部包含了一个完整的事物,且这个事物没有必要单独设计时,就可以把这个事物设计成内部类

静态内部类

成员内部类

JDK16之前成员内部类中不能定义静态成员

访问冲突变量

总结

局部内部类

匿名内部类(重点)

特点:

匿名内部类本质就是一个子类,并会立即创建出一个子类对象

作用:

用于更方便的创建一个子类对象

匿名内部类在开发中的使用场景

总结:

枚举

枚举类中的名称都是常量【常量名大写】

values() : 获取枚举所有的枚举项

valueOf() :将字符串名称转换为枚举对象

枚举的使用场景

泛型

泛型就是一个类型变量,只能用应用类型去进行赋值

定义类、接口、方法时,同时声明了一个或者多个类型变量

作用:

泛型的作用:可以在编译阶段去检查数据的类型是否合法,可以避免不必要的类型强制转换及类型转换异常

泛型提供了在编译阶段约束所能操作的数据类型,并自动进行检查的能力!这样可以避免强制类型转换,及其可能出现的异常。

泛型若没有指定,默认就是0bject类型

泛型的本质:

把具体的数据类型作为参数传给类型变量。

泛型类

泛型接口

如果子类也不确定类型,依旧可以使用泛型来指定

泛型方法

<T> 定义泛型T

E 使用泛型

通配符

就是“?”,可以在“使用泛型”的时候代表一切类型;E T K V 是在定义泛型的时候使用。

泛型的上下限

泛型上限 extends

泛型下限 super

泛型的擦除问题喝注意事项

API

就是Java帮我们已经写好一些程序,如:类、方法等,我们直接拿过来用就可以解决一些问题。

Object

object类是Java中所有类的祖宗类,因此,Java中所有类的对象都可以直接使用object类中提供的一些方法。

常用

toString

equals方法是用来比较两个对象是否相同

总结

Object类提供的对象克隆的方法

1.先实现接口

2.重写克隆方法

3.克隆

当某个对象调用这个方法时,这个方法会复制一个一模一样的新对象返回。

浅克隆

拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的只是地址

深克隆

对象中基本类型的数据直接拷贝。

对象中的字符串数据拷贝的还是地址。

对象中还包含的其他对象,不会拷贝地址,会创建新对象。

访问权限可以变大

返回值类型可以变小

native方法,是调用底层的方法

浅克隆

深克隆

总结

Objects

Objects是一个工具类,提供了很多操作对象的静态方法给我们使用。

Objects类的常见方法

equals

先判断a 和 b的地址 如果地址不同

判断 a != null

当a不为空再执行a.equals(b)

idNull

nonNull

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值