主要介绍:

  • 认识泛型
  • 构造方法中使用泛型
  • 设置多个泛型
  • 通配符
  • 泛型接口
  • 泛型方法
  • 泛型数组

一、认识泛型

具体实例如下:

 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面向对象之泛型的更多相关文章

  1. 3. Java面向对象之泛型-指定多个泛型

    3. Java面向对象之泛型-指定多个泛型 package generic; class MutiGeneric<K, T> { private K key; private T take ...

  2. 2. Java面向对象之泛型-构造方法中使用

    package generic; class Construtgeneric<T> { private T value; public Construtgeneric(T value) { ...

  3. 1. Java面向对象之泛型-认识泛型

    package generic; class Point{ private  Object x; private  Object y; public Object getX() { return x; ...

  4. java面向对象的核心思想

    java面向对象的特征之一:封装 1.封装性的使用 package edu.tongji.classdemo; /* 封装性 1.封装的目的:保护某些属性和方法不被外部所见 2.封装的实现 为属性和方 ...

  5. Java面向对象 其他对象

     Java面向对象  其他对象 知识概要:             (1)可变参数 (2)静态导入 (3)System (4)Runtime (5)Date  Calendar (6)Math 本 ...

  6. Java面向对象 集合(中)

     Java面向对象 集合(中) 知识概要:                   (1)泛型的体系概念 (2)泛型的特点 (3)自定义泛型类 泛型的体系概念           泛型:JDK1.5版 ...

  7. 夯实Java基础系列13:深入理解Java中的泛型

    目录 泛型概述 一个栗子 特性 泛型的使用方式 泛型类 泛型接口 泛型通配符 泛型方法 泛型方法的基本用法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型方法总结 泛型上下边界 泛型常见面试 ...

  8. 从一知半解到揭晓Java高级语法—泛型

    目录 前言 探讨 泛型解决了什么问题? 扩展 引入泛型 什么是泛型? 泛型类 泛型接口 泛型方法 类型擦除 擦除的问题 边界 通配符 上界通配符 下界通配符 通配符和向上转型 泛型约束 实践总结 泛型 ...

  9. Java面向对象程序设计笔记 • 【目录】

    持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java面向对象作业目录(作业笔记) 第1章 Java面向对象笔记 • [第1章 面向对象] 第2章 Java面向对象笔记 • ...

随机推荐

  1. logistic regression评价方法

    1.sensitivity,也叫recall,true positive rate,含义是预测为正向的case中对的(true positive)和所有事实为正向的case的比例. 2.specifi ...

  2. 用户和组的权限管理/特殊权限和ACL(个人笔记)

    个人学习笔记总结 内容包括解释Linux的安全模型解释用户帐号和组群帐号的目的用户和组管理命令理解并设置文件权限默认权限特殊权限ACL介绍安全3A资源分派:Authentication:认证Auth ...

  3. Linux中的硬链接和软链接的概念、区别及用法

    概念: 硬链接(hard link): A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指 ...

  4. socket.error: [Errno 10048]

    socket.error: [Errno 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次 经过搜索发现这个提示是在端口冲突的时候出现,可能的原因是在服务器程序中创建一个Sock ...

  5. angular 使用ng-zorro的from组件 运行报错

    emplate parse errors: Can't bind to 'formGroup' since it isn't a known property of 'form'. 原因:没有导入表单 ...

  6. 利用数据库视图实现WEB查询敏感信息接口动态脱敏

    前言: 利用数据库视图,实现web接口查询敏感信息时动态脱敏. 具体目标:某接口为用户信息查询接口,返回敏感用户信息(id,姓名.手机号[敏感].身份证号[敏感]),如果web用户为管理员角色,则查询 ...

  7. js -- 数组的操作(自己的常用备查)

    1.数组的定义 var arr = [],或者 var arr = [1,2,3,4,5] 2.数组的使用 >数组的合并 concat ,,]; ,]; a = a.concat(b); con ...

  8. Visual Studio 2015 Tools for Unity使用基础

    Unity4.x编辑器侧 具体版本号:Visual Studio 2015 Tools for Unity 3.7.0.1 该插件在:Microsoft Visual Studio Tools for ...

  9. Ubuntu中如何使得程序在后台运行

    Ubuntu中如何使得程序在后台运行 一.前言 在Ubuntu中有的程序启动需要执行改程序./bin目录下的文件,并且启动之后这个shell就不能使用和关闭了,非常的麻烦,因此就有了相应的命令来解决这 ...

  10. concurrent (八) Future

    作用: 接受多线程的执行结果 全路径: java.util.concurrent 声明: public interface Future<V> 类图结构: 方法 boolean cance ...