2022-08-01 day19 第一小组 王鸣赫

1|0泛型

类型擦除:(编译角度)泛型在编译后全按object类型处理(就是让程序员编写代码是遵守的“规则”:创建对象时建立了规则,以后使用我这个对象时必须遵守我的规则(编码角度))
泛型;标记类型(T-类型 K-key V-value E-element元素 ?-通配符) “暂时不确定是什么类型,用的时候再确认”(类型参数化-你把想要的类型作为参数传给我确定类型)
泛型类/接口:类名 在整个“类”中都可以使用,可以在使用这个类的时候指定类型然后类中所有的使用T类型的方法
泛型方法:返回值和参数列表,写返回值之前定义泛型<>("声明泛型"),必须配合传参(传的参数是啥类型,泛型就是啥类型)----前提 必须要有泛型声明和返回值;必须要有参数。(泛型方法多数放在非泛型类中)

1|1泛型与继承:

1.父类是泛型类,子类不一定是
2.泛型的声明在类名之后或者在方法名中间
3.父类跟随子类确定泛型的类型
4.在继承后,子类不是泛型类,继承的东西(方法,属性)就是object类型
5.静态泛型方法必须直接声明泛型
适用场景(当类型无法确定时使用)
1.父类(接口中):定义规则,没有明确要求(由子类确定)
2.容器类:存储的数据类型由使用者确定

点击查看代码
修饰符 class 类名<代表泛型的变量> { } 怕你不清楚怎么使用,这里我还是做了一个简单的泛型类: /** * @param <T> 这里解释下<T>中的T: * 此处的T可以随便写为任意标识,常见的有T、E等形式的参数表示泛型 * 泛型在定义的时候不具体,使用的时候才变得具体。 * 在使用的时候确定泛型的具体数据类型。即在创建对象的时候确定泛型。 */ public class GenericsClassDemo<T> { //t这个成员变量的类型为T,T的类型由外部指定 private T t; //泛型构造方法形参t的类型也为T,T的类型由外部指定 public GenericsClassDemo(T t) { this.t = t; } //泛型方法getT的返回值类型为T,T的类型由外部指定 public T getT() { return t; } }

1|2点击查看泛型实现类

点击查看代码
public class GenericsClassDemo<String> { private String t; public GenericsClassDemo(String t) { this.t = t; } public String getT() { return t; } }

1|3泛型接口

点击查看代码
1、定义类时确定泛型的类型 public class GenericsImp implements GenericsInteface<String> { @Override public void add(String s) { System.out.println("设置了泛型为String类型"); } } 2、始终不确定泛型的类型,直到创建对象时,确定泛型的类型 public class GenericsImp<T> implements GenericsInteface<T> { @Override public void add(T t) { System.out.println("没有设置类型"); } } 确定泛型: public class GenericsTest { public static void main(String[] args) { GenericsImp<Integer> gi = new GenericsImp<>(); gi.add(66); } }

1|4通配符高级使用

1|0泛型的上限:

格式: 类型名称 <? extends 类 > 对象名称
意义: 只能接收该类型及其子类

1|0泛型的下限:

格式: 类型名称 <? super 类 > 对象名称
意义: 只能接收该类型及其父类型

2|0枚举类:(类名要以Enum结尾)

1.把需要用到的对象声明出来 -对象名(构造参数) 2.可以有set和get方法 3.可以有构造器(私有) 枚举的静态导入(不用类名.了) import static 全类名.*/枚举对象
点击查看枚举实现单例(内部枚举)

2|1进程:一个程序的运行过程


__EOF__

本文作者404notfond
本文链接https://www.cnblogs.com/wmh19990109/p/16545389.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   404notfond  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示