2022-08-01 第十组 石晓荟


JAVA高级

重点

一.枚举
二. 泛型

知识点

一.枚举

定义枚举类的格式:
修饰符 enum 枚举名称{
            第一行都是罗列枚举类实例的名称。
}

enum Season{  
  SPRING , SUMMER , AUTUMN , WINTER;
}

枚举的特征:
枚举类都是继承了枚举类型:java.lang.Enum
枚举都是最终类,不可以被继承。
构造器都是私有的,枚举对外不能创建对象。
枚举类的第一行默认都是罗列枚举对象的名称的。
枚举类相当于是多例模式。

选择常量做信息标志和分类:
虽然可以实现可读性,但是入参值不受约束,代码相对不够严谨。

枚举做信息标志和分类:
代码可读性好,入参约束严谨,代码优雅,是最好的信息分类技术!建议使用!

二.泛型概述

泛型概述:
     是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。
     泛型的格式:<数据类型>; 注意:泛型只能支持引用数据类型。
     集合体系的全部接口和实现类都是支持泛型的使用的。
泛型的好处:
    统一数据类型。
    把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为编译阶段类型就能确定下来。泛型类的概述

1.泛型类

泛型类的概述:
定义类时同时定义了泛型的类就是泛型类。
泛型类的格式:修饰符 class 类名<泛型变量>{  }
范例:public class MyArrayList<T> {  }
此处泛型变量T可以随便写为任意标识,常见的如E、T、K、V等
作用:编译阶段可以指定数据类型,类似于集合的作用
泛型类的原理:
把出现泛型变量的地方全部替换成传输的真实数据类型

2. 泛型方法

泛型定义在方法的修饰符和返回值类型之间
 格式: 修饰符<泛型> 返回值类型 方法名(参数列表(使用泛型)) { 方法体; }
含有泛型的方法,在调用方法的时候确定泛型的数据类型 
传递什么数据类型的参数,泛型就是什么类型

3. 泛型接口

含有泛型的接口,第一种使用方式: 定义接口的实现类,实现接口,
指定接口的泛型 
public interface Iterator<E> {
 E next(); 
} 
Scanner类实现了Iterator接口,并指定接口的泛型为String,
所以重写的next方法泛型默认为 
String public final Scanner implements Iterator<String> {
 public String next(){}
 }
含有泛型的接口第二种使用方式:
 接口使用什么泛型,实现类就使用什么泛型,类跟着接口走 
就相当于定义了一个含有泛型的类,
创建对象的时候确定泛型的类型
 public interface List<E> { 
boolean add(E e); E get(int index);
 }
public class ArrayList<E> implements List<E> {
 public boolean add(E e) {}
 public E get(int index) {} 
}
通配符:
当使用泛型类或者接口时,
传递的数据中,泛型类型不确定,可以通过通配符<?>表示。
但是一 旦使用泛型的通配符之后,只能使用Object类中的共性方法,
集合中元素自身方法无法使用。 
通配符基本使用 泛型的通配符:
不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符,代表 任意的数据类型 此时只能接收数据
,不能往集合中存储数据 使用方式 不能创建对象使用只能作为方法的参数使用

原创文章,作者:wure,如若转载,请注明出处:https://blog.ytso.com/278287.html

(0)
上一篇 2022年8月1日
下一篇 2022年8月1日

相关推荐

发表回复

登录后才能评论