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 ...
随机推荐
- 表达式求值(栈方法/C++语言描述)(三)
代码清单 // calculator.h #ifndef CALCULATOR_H #define CALCULATOR_H #include <stack> #include <s ...
- Uva 548 二叉树的递归遍历lrj 白书p155
直接上代码... (另外也可以在递归的时候统计最优解,不过程序稍微复杂一点) #include <iostream> #include <string> #include &l ...
- python实战第一天-paramiko模块并练习
操作系统 Ubuntu 15.10 IDE & editor JetBrains PyCharm 5.0.2 ipython3 Python版本 python-3.4.3 安装paramiko ...
- NYOJ-63 小猴子下落(二叉树及优化算法详解)
小猴子下落 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同.所有结点从左到右从上到下的编号为1,2,3,··· ...
- 蓝桥杯算法训练_2的次幂表示+前缀表达式+Anagrams问题+出现次数最多的整数
今天做了4个简单的题,题目虽然是简单,但是对于我这样的小白,还是有很多东西需要学习的. 2的次幂表示 上面就是题目,题目说的也很清晰了,接下来就是递归的实现: #include<iostream ...
- ORACLE 程序包
程序包由PL/SQL程序元素(变量,类型)和匿名PL/SQL(游标),命名PL/SQL 块(存储过程和函数)组成. 程序包可以被整体加载到内存中,这样可以大大加快程序包中任何一个组成部分的访问速度. ...
- python标准数据类型
Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) Python 中的变量不需 ...
- 使用MySQL-Proxy读写分离时的注意事项
在动手操作前最好先安装好MySQL-Proxy,并配置好MySQL主从服务器.补充:新版MySQL已经内建支持 延迟问题 读写分离不能回避的问题之一就是延迟,可以考虑Google提供的SemiSync ...
- FTP服务
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为 "文传协议" 用于Internet上的控制文件的双向传输.同时,它也是一个应用程序( ...
- statement和preparedstatement的区别
在执行SQL命令时,我们有二种选择:可以使用PreparedStatement对象,也可以使用Statement对象.无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和 ...