java学习第16天(泛型 增强for)
泛型概述
是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。
格式:
<数据类型>
注意:该数据类型只能是引用类型。
好处:避免了强制类型转换,比如上个实验 String s=(String)e.nextElement();
如果我们使用了泛型在抽象的接口中,Interator <String>i=new Collection().interator() ,后面它就会自动认为Interator的对象只能是String ,方便且避免了很多错误。格式 ArrayList<String> a=new ArrayList<String>(); 这是泛型类的使用,泛星还运用在方法上,比如,再函数重载中我们会遇到很多的参数类型,我们就必须要在函数中定义很多的类型,比如:
Class Tool{
piublic void show(String s){
System.out.println(s);
}
piublic void show(int t){
System.out.println(t);
}
}
在主函数中
Tool t=new Tool();
t.show(hello);
t.show(5);
如果参数的类型多的话,就需要重载很多,很麻烦,泛型方法就帮助我们解决了这个问题。
Class Tool{
piublic<T> void show(T s){
c
}
Tool t=new Tool();
t.show(hello);
t.show(5);
此时当输入hello时,自动传递类型String。
然后是泛型接口
我们定义public interface inf<T>{
public abstract void show(T t);
}
实现接口
public Class infimpl<T> implements inf<T>{
public void show(T t){
System.out.println(t);
}
}
增强for
for(元素的数据类型 变量名 : 数组或者Collection集合的对象) {
使用该变量即可,该变量其实就是数组或者集合中的元素。
}
简化了数组和集合的遍历
举例:
ArrayList a=new ArrayList();
a.add("hello");
a.add("boy");
for(String s : a){
System.out.println(s);
}//以前要用迭代器
java学习第16天(泛型 增强for)的更多相关文章
- Java 学习(16):集合框架
Java 集合框架 早在Java 2中之前,Java就提供了特设类.比如:Dictionary, Vector, Stack, Properties 这些类用来存储和操作对象组. 虽然这些类都非常有 ...
- Java学习笔记-基础语法Ⅷ-泛型、Map
泛型 泛型本质上是参数化类型,也就是说所操作的数据类型被指定为一个参数,即将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型,这种参数类型可以用在类.方法和接口中,分别为泛型类.泛型方法 ...
- Java学习笔记九(泛型)
1.介绍 所谓的泛型就是将类型作为一种參数来传递.有了泛型后类型不再是一成不变的.能够通过泛型參数来指定. 能够提供程序开发的灵活性. 2.泛型类或接口的使用 泛型类声明时.与普通类没有太大的差别,仅 ...
- JAVA学习笔记16——线程的创建和启动
Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例.每个线程的作用是完成一定的任务,实际上就是执行一段程序流(一段顺序执行的代码).Java使用线程执行体来代表这段 ...
- Java 学习笔记(16)——Java数据库操作
数据库操作是程序设计中十分重要的一个部分,Java内置JDBC来操作数据库 JDBC使用 JDBC--Java Database connecting Java数据库连接:本质上JDBC定义了操作数据 ...
- Java学习笔记16(面向对象九:补充内容)
总是看到四种权限,这里做一个介绍: 最大权限是public,后面依次是protected,default,private private修饰的只在本类可以使用 public是最大权限,可以跨包使用,不 ...
- java学习笔记16(正则表达式)
正则表达式: 定义:在pattern类中有简单规则定义,具有特殊含义的字符串: 作用:用于一些字符串,比如验证注册邮箱,密码,用户名等: 正则表达式的语法: 1)字符:'\'反斜杠 \t 代表制表 ...
- JAVA学习笔记16——控制线程
Java的线程支持提供了一些便捷的工具方法,通过这些便捷的工具方法可以很好地控制线程执行. join线程 Thread提供了让一个线程等待另一个线程完成的方法——join().当在某个线程执行流中 ...
- JAVA学习笔记16——线程生命周期
当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New).就绪(Runnable).运行(Running).阻塞(Blocking)和 ...
随机推荐
- 1.15 kickstart rpm yum
###########bootstrap 启动加载器 (pxelinux.0)传输pxelinux.cfg NIC #network interface PXEpxelinux.0/tftp/pxel ...
- 支付宝Andfix 原理解析
支付宝Andfix 原理解析 使用参考地址: http://blog.csdn.net/qxs965266509/article/details/49802429 原理参考地址: http://blo ...
- 欢迎你,phpWeChat 开发者
感谢您使用 phpWeChat 来作为自己网站或者微信公共号的开发工具.phpWeChat 是一款高效.稳定的网站+微信公共号内容管理系统(CMS),也可称之为一个PHP开发框架. phpWeChat ...
- 【转】关于启用 HTTPS 的一些经验分享
随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS.HTTPS 通过 TLS 层和证书机制提供了内容加密.身份认证和数据完整性三大功能,可以有效防止数据被查看或篡 ...
- treeGrid树形数据表格的json数据格式说明
在使用easyUI 的treeGrid的时候,很多时候我们从数据库取出来的数据treeGrid却不能读取显示成一个树:如下 { menuCode: "a00", menuName: ...
- 初级文法课程-第1课:名词的种类/名词的数/名词的所有格/冠词;be 动词、一般动词的现在式
January 31, 2016 Unit 1 名词和冠词 名词:n (noun) 作用:当主词.补语.受词 1.名词的种类 [单数和复数--I like dogs] 普通名词:book,pen ...
- js 控制 css3高级运动 keyframes
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- java动态绑定的一点注意
动态绑定只是针对对象的方法,对于属性无效.因为属性不能被重写. show me code: public class Father{ public String name = "父亲属性&q ...
- [Maven]Apache Maven 入门篇
作者:George Ma 上 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 ma ...
- OAF_文件系列10_实现OAF将数据资料导出Excel到本地JXL(案例)
20150729 Created By BaoXinjian