Java面向对象
Java异常
Java数组
Java常用类
Java集合
Java IO流
Java线程
Java反射
Socket编程
Java注解开发
Java GoF设计模式
HashMap
Java内存模型
Java线性表

Java泛型详解

在Comparable/Comparator接口中通过泛型指定比较对象的数据类型, 在Collection集合中,通过泛型指定集合元素的类型。

泛型就是把数据类型参数化。

泛型的好处,可以在编译时进行数据类型检查。

如:

Collection<String> collection = new ArrayList<>(); 约束collection集合中只能存储String类型的数据。

注意:

Collection  collection = new ArrayList<String> ();  如果在定义collection集合时没有指定泛型 ,在创建ArrayList对象时指定了泛型, 是没有作用的, 当前的collection集合依然是存储Object类型的数据。

练习:

定义一个攻击接口Attackable, 封装一个attack()攻击操作

定义一个移动接口Movable, 封装一个move()移动操作

定义一个坦克类Tank, 坦克既可以移动,又可以攻击

定义一个战斗机类Flighter, 战斗机也可以移动与攻击

定义一个导弹类Missile, 导弹只能攻击不能移动

坦克,战斗机,导弹都是武器, 所有武器都能攻击

定义一个部队类Army, 该部队有若干武器(使用集合存储武器对象). 在部队类中定义一个添加武器的方法,可以把武器添加到集合中; 定义一个判断指定的武器是否存在的方法; 定义一个方法, 给武器库中所有的武器下达攻击指令, 让集合中的所有武器攻击;  定义一个方法, 给所有武器下达移动指令, 让集合中的能移动的武器移动

Tank   t = new  Tank();

t instanceof  Tank 返回true

t  instanceof  Movable    返回true,  Tank实现了Movable接口