Java17-java语法基础——泛型
Java18-java语法基础——泛型
一、泛型概念和作用
1、泛型概念:
泛型是JavaSE1.5的新特性,泛型的本质是参数化类型,也就是说,所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
把指定类型的工作推迟到客户端代码声明并实例化类或方法时进行。
2、泛型作用:
(1)提高Java程序的类型安全
(2)消除代码中许多强制类型转换、
(3)系统优化
3、泛型应用:
泛型类、泛型接口、泛型方法
二、泛型定义与使用
1、泛型定义
(1)泛型类的定义
class 类名<泛型类型标识符1,泛型类型标识符2,...泛型类型标识符n>{
泛型类型标识 数据成员;
泛型类型标识 成员方法;
返回值类型 成员方法名称(泛型类型标识符 参数名){}
}
(2)泛型对象的定义
类名<具体类> 对象名 = new 类名<具体类>();

(3)泛型方法的定义
使用构造方法初始化类的数据成员,也可以在泛型类型中定义构造方法。
[访问权限] 类名([泛型类型 参数]){
//方法体
}

(4)泛型通配符“?”
方法的参数类型采用泛型通配符,表示可以是任何该对象的泛型。

四、泛型接口
1、泛型接口定义:
interface 接口名<泛型类型标识符1,泛型类型标识符2,...泛型类型标识符n >{
方法实现;
}
2、泛型接口的实现
(1)在实现接口的子类中声明泛型
class 类名<泛型类型标识符> implements 泛型类型名<泛型类型标识符>{
方法实现;
}
(2)在实现接口的子类中明确给出泛型类型
class 类名 implements 泛型类型名<泛型类型的具体类型>{
方法实现;
}
3、实例
(1)在子类中声明泛型类型

(2)在子类中指定泛型类型

Java17-java语法基础——泛型的更多相关文章
- Java语法基础(1)
Java语法基础(1) 1. Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...
- Java语法基础学习DayTwelve(泛型)
一.泛型(Generic)在集合中的使用 1.作用 (1)解决元素存储的安全问题 (2)解决获取数据元素时,需要类型强转的问题 2.代码案例 //在集合没有使用泛型的情况下 List list = n ...
- java语法基础(一)
这个是自己前两年做java视频教程时候的课件.感兴趣的同学可以参考下. 这里是纯粹的语法行总结. editplus的使用 选择项目目录 打开editplus 左侧目录导航栏 可以打开盘符,文件夹 可以 ...
- JAVA语法基础作业——动手动脑以及课后实验性问题 (八)
一.动手动脑 运行AboutException.java示例,了解Java中实现异常处理的基础知识. 1)源代码 import javax.swing.*; class AboutException ...
- java语法基础
Java的基本符号(token) Java的单词符号有五种:关键字.标识符.常量.分隔符和操作符. Java的字符集 Java 采用一种称为unicode的字符集,该字符集合是一种新的编码标准,与常见 ...
- Java语法基础(三)----选择结构的if语句、switch语句
[前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过 ...
- Java语法基础(一)----关键字、标识符、常量、变量
一.关键字: 关键字:被Java语言赋予特定含义的单词.组成关键字的字母全部小写.注:goto和const作为保留字存在,目前并不使用.main并不是关键字. 二.标识符: 标识符:就是给类,接口,方 ...
- 黑马程序员——【Java基础】——Java语法基础
---------- android培训.java培训.期待与您交流! ---------- 一.关键字 1.定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有的字母都为小写. ...
- JAVA语法基础(课堂ppt问题总结)
一:运行源代码EnumTest.java,分析运行结果. 代码如下: public class EnumTest { public static void main(String[] args) { ...
随机推荐
- Azure VMSS (3) 修改VM Template并创建VMSS
<Windows Azure Platform 系列文章目录> 在开始本章内容之前,我们需要准备好Azure VM的镜像,具体可以参考:Azure VMSS (2) 对VM执行Genera ...
- css零碎知识点小结
1.单行文字溢出显示省略号: div{ width: 200px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap; } 2 ...
- 单源最短路径算法——Dijkstra算法(迪杰斯特拉算法)
一 综述 Dijkstra算法(迪杰斯特拉算法)主要是用于求解有向图中单源最短路径问题.其本质是基于贪心策略的(具体见下文).其基本原理如下: (1)初始化:集合vertex_set初始为{sourc ...
- keil5 MDK 链接报错 Error: L6410W 解决
keil5 MDK 报错 Build target 'Project' linking... .\Output\Project.axf: Warning: L6310W: Unable to find ...
- iOS开发SDWebImageOptions理解
iOS开发SDWebImageOptions理解 原文 http://www.cnblogs.com/WJJ-Dream/p/5816750.html typedef NS_OPTIONS(NSUIn ...
- Flask与WSGI
刚开始接触到python及Flask框架时,总是会听到 wsgi等等相关的名词,以及 项目部署时会用到nginx+gunicorn等等,但是对于一个请求从 nignx到gunicorn再到falsk框 ...
- python常见循环练习
第一题:求5的阶乘 # 方法1,递归 def jc(num): if num == 1: return 1 else: return num*jc(num-1) print(jc(5)) # 方法2, ...
- Requests将verify设置为False后取消警告的方式
方法一 import requests import urllib3 urllib3.disable_warnings() resp = requests.get('https://www.***.c ...
- 【HDFS API编程】开发环境搭建
使用HDFS API的方式来操作HDFS文件系统 IDEA Java 使用Maven来管理项目 先打开IDEA,New Project 创建GAV然后next 默认使用的有idea内置的Maven,可 ...
- spring学习1
1.<context:property-placeholder/> :用于从外部属性文件中获取Bean的配置 <context:property-placeholder locati ...