Java面向对象之泛型
主要介绍:
- 认识泛型
- 构造方法中使用泛型
- 设置多个泛型
- 通配符
- 泛型接口
- 泛型方法
- 泛型数组
一、认识泛型

具体实例如下:
package com.huolongluo.newfeatures; /**
* Created by 火龙裸 on 2019/7/5.
* desc : 认识泛型
* version: 1.0
*/
public class GenericDemo01 {
public static void main(String[] args) {
Point<Integer> p = new Point<>();
p.setX(0);
p.setY(12);
int px = p.getX();
int py = p.getY(); System.out.println("px = " + px +" py = " + py);
} static class Point<T> {
private T x;
private T y; public T getX() {
return x;
} public void setX(T x) {
this.x = x;
} public T getY() {
return y;
} public void setY(T y) {
this.y = y;
}
}
}
运行结果:

二、构造方法中使用泛型

具体实例如下:
package com.huolongluo.newfeatures; /**
* Created by 火龙裸 on 2019/7/5.
* desc : 构造方法中使用泛型
* version: 1.0
*/
public class GenericDemo02 {
public static void main(String[] args) {
Con<String> con = new Con<>("构造方法中使用泛型 huolongluo");
System.out.println(con.getValue());
} static class Con<T> {
private T value; public Con(T value) {
this.value = value;
} public T getValue() {
return value;
} public void setValue(T value) {
this.value = value;
}
}
}
运行结果:

三、指定多个泛型

具体实例如下:
package com.huolongluo.newfeatures; /**
* Created by 火龙裸 on 2019/7/5.
* desc : 指定多个泛型
* version: 1.0
*/
public class GenericDemo03 {
public static void main(String[] args) {
Gen<String, Integer> gen = new Gen<>();
gen.setKey("火龙裸");
gen.setTake(200);
System.out.println(gen.getKey() + " " + gen.getTake());
} static class Gen<K, T> {
private K key;
private T take; public K getKey() {
return key;
} public void setKey(K key) {
this.key = key;
} public T getTake() {
return take;
} public void setTake(T take) {
this.take = take;
}
}
}
运行结果:

四、通配符
通配符比较简单,直接通过实例进行展示:
package com.huolongluo.newfeatures; /**
* Created by 火龙裸 on 2019/7/5.
* desc : 通配符 : ?
* version: 1.0
*/
public class GenericDemo04 {
public static void main(String[] args) {
Info<String> info = new Info<>();
info.setKey("我是火龙裸");
tell(info);
} /**
* 通配符 : ?
* */
public static void tell(Info<?> i) {
System.out.println("打印:" + i);
} static class Info<T> {
private T key; public T getKey() {
return key;
} public void setKey(T key) {
this.key = key;
} @Override
public String toString() {
return "Info{" +
"key=" + key +
'}';
}
}
}
运行结果:

五、泛型在接口当中使用

具体实例如下:
package com.huolongluo.newfeatures; /**
* Created by 火龙裸 on 2019/7/5.
* desc : 泛型在接口当中的使用
* version: 1.0
*/
public class GenericDemo05 {
public static void main(String[] args) {
Gin gin = new Gin("我是火龙裸");
System.out.println(gin.getInfo());
} interface GenInter<T> {
void say();
} static class Gin<T> implements GenInter<T> {
private T info; public Gin(T info) {
this.info = info;
} public T getInfo() {
return info;
} public void setInfo(T info) {
this.info = info;
} @Override
public void say() { }
}
}
运行结果:

六、泛型方法

具体实例如下:
package com.huolongluo.newfeatures; /**
* Created by 火龙裸 on 2019/7/5.
* desc : 泛型方法
* version: 1.0
*/
public class GenericDemo06 {
public static void main(String[] args) {
Gener gener = new Gener(); String str = gener.tell("我是huolongluo");
System.out.println(str); int i = gener.tell(1200);
System.out.println(i);
} static class Gener {
public <T> T tell(T t) {
return t;
}
}
}
运行结果:

七、泛型数组
泛型数组的使用,其实跟泛型犯法,是要相搭配来使用的。

具体实例如下:
package com.huolongluo.newfeatures; /**
* Created by 火龙裸 on 2019/7/5.
* desc : 泛型数组
* version: 1.0
*/
public class GenericDemo07 {
public static void main(String[] args) {
String arr0[] = {"www", "huolongluo", "com"};
tell(arr0); Integer arr1[] = {1, 2, 3, 4};
tell(arr1);
} static <T>void tell(T arr[]) {
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
运行结果:

OK,一气呵成。程序员,抛砖引玉很重要。
Java面向对象之泛型的更多相关文章
- 3. Java面向对象之泛型-指定多个泛型
3. Java面向对象之泛型-指定多个泛型 package generic; class MutiGeneric<K, T> { private K key; private T take ...
- 2. Java面向对象之泛型-构造方法中使用
package generic; class Construtgeneric<T> { private T value; public Construtgeneric(T value) { ...
- 1. Java面向对象之泛型-认识泛型
package generic; class Point{ private Object x; private Object y; public Object getX() { return x; ...
- java面向对象的核心思想
java面向对象的特征之一:封装 1.封装性的使用 package edu.tongji.classdemo; /* 封装性 1.封装的目的:保护某些属性和方法不被外部所见 2.封装的实现 为属性和方 ...
- Java面向对象 其他对象
Java面向对象 其他对象 知识概要: (1)可变参数 (2)静态导入 (3)System (4)Runtime (5)Date Calendar (6)Math 本 ...
- Java面向对象 集合(中)
Java面向对象 集合(中) 知识概要: (1)泛型的体系概念 (2)泛型的特点 (3)自定义泛型类 泛型的体系概念 泛型:JDK1.5版 ...
- 夯实Java基础系列13:深入理解Java中的泛型
目录 泛型概述 一个栗子 特性 泛型的使用方式 泛型类 泛型接口 泛型通配符 泛型方法 泛型方法的基本用法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型方法总结 泛型上下边界 泛型常见面试 ...
- 从一知半解到揭晓Java高级语法—泛型
目录 前言 探讨 泛型解决了什么问题? 扩展 引入泛型 什么是泛型? 泛型类 泛型接口 泛型方法 类型擦除 擦除的问题 边界 通配符 上界通配符 下界通配符 通配符和向上转型 泛型约束 实践总结 泛型 ...
- Java面向对象程序设计笔记 • 【目录】
持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java面向对象作业目录(作业笔记) 第1章 Java面向对象笔记 • [第1章 面向对象] 第2章 Java面向对象笔记 • ...
随机推荐
- 一款开源且超好用的网站克隆机 HTTrack
0x00 前言 我们在学习前端的时候,总是会想着去学习其他人网站是如何制作的,或者我们遇到一些比较有用的知识点的时候,我们可能会选择通过 Ctrl + C / Ctrl + V 去扒下内容,然而我并非 ...
- [日常] gitlab创建用户并把用户加入项目
在gitlab里创建用户 默认密码是要求创建的用户自己去邮箱重置,也可以创建完成后直接点击编辑,就可以更改密码了 创建完用户,用户登录的时候需要去重置密码 创建完项目,就可以去使用了 也可以为这个项目 ...
- 1.Python爬虫入门_urllib
#2019-11-22 import urllib.request #Pthon自带的网络连接库 import gzip #解压缩库 #程序入口 if __name__=='__main__': #u ...
- Spark内核| 调度策略| SparkShuffle| 内存管理| 内存空间分配| 核心组件
1. 调度策略 TaskScheduler会先把DAGScheduler给过来的TaskSet封装成TaskSetManager扔到任务队列里,然后再从任务队列里按照一定的规则把它们取出来在Sched ...
- bolb与base64的图片互转
直接看图简单明了. 注:便于测试你可以自己用base64图片测试互转一下.这里base64图片太长了就不给予展示了,望理解
- 洛谷P3206 [HNOI2010]城市建设
神仙题 题目大意: 有一张\(n\)个点\(m\)条边的无向联通图,每次修改一条边的边权,问每次修改之后这张图的最小生成树权值和 话说是不是\(cdq\)题目都可以用什么数据结构莽过去啊-- 这道题目 ...
- Java 基础系列:异常
Java 中的异常(Exception)又称为例外,是一个在程序执行期间发生的事件,它中断正在执行的程序的正常指令流.为了能够及时有效地处理程序中的运行错误,必须使用异常类. 1. 异常类型 Thro ...
- 周董新歌搞崩QQ,抓取20W评论看看歌迷在说啥
9 月 16 日晚间,周董在朋友圈发布了最新单曲<说好不哭> 发布后,真的让一波人哭了 一群想抢鲜听的小伙伴直接泪奔 因为 QQ 音乐直接被搞崩了 没想到干翻 QQ 音乐的不是网易云音乐 ...
- Java连载8-基本数据类型2
一.基本数据类型 1.字符串“abc”不属于基本数据类型,属于引用数据类型 2. 基本数据类型 占用空间大小(单位:字节) byte 1 short ...
- python 学习常见问题笔记
1.for...if...构建List segs = [v for v in segs if not str(v).isdigit()]#去数字 https://www.cnblogs.com/eni ...