当前位置: 首页 > news >正文

数据结构基础准备:包装类 泛型 泛型的上界 密封类

目录

数据结构总览: 

包装类 

泛型

泛型的上界

密封类 


数据结构总览: 

包装类 

在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类型。
基本数据类型和对应的包装类

泛型

问题1.存放数据太乱了什么都能放。
2.每次取数据的时候,都要强转。

所以,泛型的主要目的:就是指定当前的容器,要持有什么类型的对象。让编译器去做检查。此时,就需要把类型,作为参数传递。需要什么类型,就传入什么类型

1.类名后的<T>代表占位符,表示当前类是一个泛型类

 

1语法
泛型类<类型实参>变量名;//定义一个泛型类引用
new泛型类<类型实参>(构造方法实参);//实例化一个泛型类对象

2示例
MyArray<Integer> list = new MyArray<Integer>();

注意:泛型只能接受类,所有的基本数据类型必须使用包装装

在编译的过程当中,将所有的T替换为Object这种机制,我们称为:擦除机制。
Java的泛型机制是在编译级别实现的。编译器生成的字节码在运行期间并不包含泛型的类型信息。

代码没报错   为什么?JDK5引入的。兼容以前的版本!!!

泛型的上界

 在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束。

1语法
class泛型类名称<类型形参extends类型边界>{

2.实例

public class MyArray<E extends Number> {

只接受Number的子类型作为E的类型实参

密封类 

密封类一般应用在类和接口中,对接口和类的实现和继承进行约束。主要使用的关键字是final。当这个类被final修饰了,被修饰的类就变成完全封闭的状态了,所有类都没办法继承
JDK17提供了一个新的关键字:sealed.密封类除了可以被该该关键字修饰,并且在声明未尾用permits表示要开放给哪些类型。
下述代码Animal为密封类,然后使用 permits关键字,把继承权限开放给了Dog类 

sealed修饰的类必须要有子类

使用non-sealed关键字修饰:表示不限制,任何类都可以继承。

未被permits允许的类型,则没办法继承

//sealed修饰Animal代表当前类是密封类    必须有子类

//Dog这个类    没有限制可以被任何类继承

没有写就是都允许,但是一旦写了以后,写谁就只允许谁。

http://www.dtcms.com/a/271162.html

相关文章:

  • 零知开源——STM32F407VET6驱动SHT41温湿度传感器完整教程
  • 2023年全国青少年信息素养大赛Python编程小学组复赛真题+答案解析-北京赛区
  • idea 常用快捷键
  • Mysql中的日志-undo/redo/binlog详解
  • 学习open62541 --- [79] 在docker中运行open62541工程
  • pytorch chunk 切块
  • 【C++】容器适配器 + stack/queue/deque详解
  • Java基础,反射破坏封装性 - 单例模式的崩塌
  • 掌握PDF转CAD技巧,提升工程设计效率
  • 第四节 chatPDF
  • 机器视觉之工业相机讲解
  • unity animtor播放动画的指定位置
  • spring boot使用mybatis-plus实现分页功能
  • C++学习笔记三
  • MATLAB基于voronoi生成三维圆柱形
  • Token 和 Embedding的关系
  • 基于AOP+Redis的简易滑动窗口限流
  • C#基础篇(10)集合类之列表
  • 列表页智能解析算法:大规模数据采集的核心引擎
  • 2024-2025-2 山东大学《编译原理与技术》期末(回忆版)
  • 【ARM嵌入式汇编基础】- 操作系统基础(二)
  • JSP数据交互
  • php绘图添加水印,文字使用imagick库的操作
  • Docker 高级管理-容器通信技术与数据持久化
  • C语言结构体对齐
  • SpringCloud系列 - xxl-job 分布式任务调度 (七)
  • 链表和数组和列表的区别
  • 力扣网编程150题:加油站(贪心解法)
  • Origin将Y偏移图升级为双Y轴3D瀑布图
  • SAP-ABAP:SAP中‘SELECT...WHERE...IN’语句IN的用法详解