Java基础学习——泛型
一、泛型方法
/** 自定义泛型:自定义泛型可以理解为是一个数据类型的占位符,或者理解为是一个数据类型的变量。 泛型方法:
泛型方法的自定义格式:修饰符<声明自定义泛型>返回值类型 函数名称(形参列表)
在自定义泛型方法上泛型的具体类型是调用该方法的时候传入参数的类型所确定的 */
public class demo1 {
public <T>T printf (T t){
return t;
}
public static void main(String[] args) {
demo1 demo1 = new demo1();
Integer integer = demo1.printf(100);
String string = demo1.printf("wz");
System.out.println(string);
System.out.println(integer);
}
}
二、泛型类
package cn.itcast.generic;
/**
* 在类上自定义泛型 如果创建该类的对象时, 没有指定泛型的具体类型 那么默认的是object类型
* 在类上自定义的泛型 具体的数据类型是在创建对象的时候指定的
*
*/
public class demo2 {
public static void main(String[] args) {
MyList<String > myList = new MyList();
myList.add("add");
// myList.add(123);
}
} class MyList<T>{
//创建对象的时候不能直接用泛型直接创建
//T[] arr = new T[10];
Object[] arr = new Object[10];
int index = 0;
public MyList() { }
public void add(T oT){
arr[index++] = oT; }
}
三、泛型接口
/**
泛型接口:
泛型接口的定义格式:interface 接口名 <声明自定义的泛型>{}
在接口上自定义泛型注意事项:
1 在接口上自定义泛型 具体的数据类型是 在实现接口的时候 指定的。
2 如果接口自定义了泛型 在实现该接口的时候没有指定数据类型 那么该接口默认 是object类型
如果
*/
interface GenericDao<T>{
public void add(T t);
public void remove(T t);
}
public class demo3 implements GenericDao<String >{
@Override
public void add(String t) {
// TODO Auto-generated method stub
}
@Override
public void remove(String t) {
// TODO Auto-generated method stub
}
}
class demo4 implements GenericDao{
@Override
public void add(Object t) {
// TODO Auto-generated method stub
}
@Override
public void remove(Object t) {
// TODO Auto-generated method stub
}
}
三、泛型接口
/**
泛型接口:
泛型接口的定义格式:interface 接口名 <声明自定义的泛型>{}
在接口上自定义泛型注意事项:
1 在接口上自定义泛型 具体的数据类型是 在实现接口的时候 指定的。
2 如果接口自定义了泛型 在实现该接口的时候没有指定数据类型 那么该接口默认 是object类型
如果
*/
interface GenericDao<T>{
public void add(T t);
public void remove(T t);
}
public class demo3 implements GenericDao<String >{
@Override
public void add(String t) {
// TODO Auto-generated method stub
}
@Override
public void remove(String t) {
// TODO Auto-generated method stub
}
}
class demo4 implements GenericDao{
@Override
public void add(Object t) {
// TODO Auto-generated method stub
}
@Override
public void remove(Object t) {
// TODO Auto-generated method stub
}
}
Java基础学习——泛型的更多相关文章
- Java基础学习-泛型概述和测试
1.举例 首先先用集合来写个自定义对象存储并且去遍历. package genericity; import java.util.ArrayList; import java.util.Collect ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
- 黑马程序员:Java基础总结----泛型(高级)
黑马程序员:Java基础总结 泛型(高级) ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- java基础学习总结——开篇
java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...
- Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
随机推荐
- Java基础之数据类型、内存、修饰符、代码块
Java 数据类型 基本数据类型 数值:int.short.long 字符:char 布尔:boolean 引用数据类型 class(类) interface(接口) 数组[] 所占字节数(1 byt ...
- 福利 c++ 标准头文件大全
#include<cmath> #include<math.h> #include<ctype.h> #include<algorithm> #incl ...
- java中构造方法及其作用
构造方法作用就是对类进行初始化. 如果你没有定议任何构造方法的形式,程式会为你取一个不带任何参数的构造函数,那么你产生类的对像时只能用不带参数的方法,如:class a {}//没有任何构造函数. 构 ...
- [vijos NOIP模拟题]天神下凡 贪心+搜索
样例: 考试的时候没时间打了,随便敲了敲就交上去了,没想到竟然编译错误,忘定义n了23333 自己测了测能骗20分hhhh 考虑每个圆对答案的贡献,当一个圆被小圆内切的时候,分成了两半,对答案的贡献就 ...
- [NOIP 2010]饮水入城 搜索+贪心
考试的时候写了个dfs找出来了,最后处理的时候想到了贪心,但是正确性没有想通.然后想了想动规,也没想通.最后没办法,用状态的话用了个状压,弄了40分. 正解是bfs+贪心.Dfs也有过的. 下面题解引 ...
- 2017年05月10日记一次微项目投产 | 安卓版微信内置浏览器不能解析gzip压缩过的mp4视频的问题
前言 今天投产了一个小项目,一个很简单的H5,有播放视频功能,使用了videojs插件. 之前也做过数个视频播放,视频的转压都按照既定流程进行,文件放到FTP后,iphone和安卓机测试下来都没有问题 ...
- 数据结构-->栈
首先,栈是什么? 在代码当中,栈主要是一种实现特殊功能的一种数据结构,而不是像数组.集合之类的数据存储工具.它最大的特点就是后进先出. 那么后进先出是什么? 假设有一个数组,我们向里面添加一个数据,再 ...
- Orleans简介
Orleans简介. Orleans是微软开源的分布式actor模型框架.actor模型的原理网络上有很多文章.有许多理论性的文章,深刻地我都不知道怎么应用.在这里我就不赘述了.既然是博客,就说说自己 ...
- Qt版权符号显示问题
在个别界面中需要显示版权信息,其中©符号在界面上显示,有时会偏小或者显示为问号~ 其中一种解决办法用html的方式显示实体字符(©>Copyright© 2016</font>&qu ...
- ReactiveCocoa源码解读(一)
本着饮水思源的想法,面对ReactiveCocoa的强大功能,按捺不住心中的好奇心,于是走进其源码之中,一探ReactiveCocoa的魅力所在.虽然,耳闻其强大功能的核心是:信号,但一直不知道这个信 ...