ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022-08-01 第十组 石晓荟

2022-08-01 22:31:38  阅读:120  来源: 互联网

标签:石晓荟 01 08 数据类型 接口 枚举 使用 泛型 public


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类中的共性方法,
集合中元素自身方法无法使用。 
通配符基本使用 泛型的通配符:
不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符,代表 任意的数据类型 此时只能接收数据
,不能往集合中存储数据 使用方式 不能创建对象使用只能作为方法的参数使用

标签:石晓荟,01,08,数据类型,接口,枚举,使用,泛型,public
来源: https://www.cnblogs.com/sxh0656/p/16542107.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有