2022-08-01 顾宇佳 学习笔记

泛型

泛型是广泛的、普通的类型。
泛型能够帮助我们把【类型明确】的工作推迟到创建对象或者调方法的时候。
 意思就是:我定义类的时候,不需要考虑这个数组到底要存什么类型。
  创建这个超级数组对象的时候把里面要存的数据的类型确定下来。
泛型也可以看成是一个变量,用来做数据类型。 

泛型的修饰:
 1、泛型类
 2、泛型方法
 3、泛型接口

泛型类,是在实例化类的时候指明泛型的具体类型;泛型方法,是在调用方法的时候指明泛型的具体类型 。

泛型类把泛型定义在类上,用户在使用类的时候才能把类型给确定。
   具体的使用方法使用<>加上一个未知数。通常用T K V E等大写字母表示。
  实际上用啥都行,只要是个单词就可以。

泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

创建集合对象,使用了泛型的例子:
好处
(1)避免了类型转换的麻烦, 存储的是什么类型,取出的就是什么类型
(2)把运行期异常(代码运行之后会抛出的异常),提升到了编译期(写代码的时候就会报错 了)
弊端:
泛型是什么类型,只能存储什么类型的数据

 

 

 继承关系

 继承关系

* 泛型类在继承时:
* 1.父类是一个泛型类,子类要不要是泛型类? 子类继承父类
* 2.永远记住,泛型的声明只能在当前类名后或者方法中间,而且声明的泛型是自己的。
* 3.在子类继承父类时,子类泛型和父类泛型都写出来的情况下,父随子变。
* 4.如果在继承时,没有写出任何泛型,当前子类就不是泛型类。
在确定子类泛型的时刻,父类的泛型和子类一样

 

定义一个普通的泛型类

//此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
//在实例化泛型类时,必须指定T的具体类型
public class Generic<T>{ 
    //key这个成员变量的类型为T,T的类型由外部指定  
    private T key;

    public Generic(T key) { //泛型构造方法形参key的类型也为T,T的类型由外部指定
        this.key = key;
    }

    public T getKey(){ //泛型方法getKey的返回值类型为T,T的类型由外部指定
        return key;
    }
}

 

静态泛型方法

如果在一个泛型类中,尽量就不要再使用泛型方法。
泛型方法多数都是出现在非泛型类。

 静态泛型方法:
 1.静态方法如果是泛型方法,泛型的声明必须写。
 2.因为静态结构是属于类的,不属于某个对象。

 

 

定义含有泛型的接口 

1.含有泛型的接口, 第一种使用方式
定义接口的实现类,实现接口,指定接口的泛型
2.含有泛型的接口 第二种使用方式
接口使用什么泛型,实现类就使用什么泛型,类跟着接口走
就相当于定义了一个含有泛型的类,创建对象的时候确定泛型的类型

泛型通配符 

当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一
旦使用泛型的通配符之后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。
1)通配符基本使用
泛型的通配符:不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符,代表
任意的数据类型
此时只能接收数据,不能往集合中存储数据
使用方式
不能创建对象使用
只能作为方法的参数使用
泛型通配符在定义时候不能用,参数传递时候可以用

 

枚举 

规定这个类的对象的个数。
枚举类的命名规则:所有的枚举类要以Enum结尾。

注意,定义枚举类的关键字是enum,而不是Enum,所有关键字都是小写的! 

枚举与switch 

枚举中的构造器 

枚举类也可以有构造器,构造器默认都是private修饰,而且只能是private。因为枚举类的实例不能让外界来创建!

单例模式 使用枚举类实现单例模式。

单元素的枚举类型已经成为实现单例模式的最佳方案。

 枚举的优势
  1.int类型不具备安全性。假如某个程序员在定义int时少写了个final,
     会存在被他人修改的风险。枚举类,它天然就是一个常量类
  2.使用int类型,语义不够明确。如果说在控制台打印输入1。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值