【java基础】03.泛型

一、泛型(Generics):
 
1.所谓泛型:就是变量类型的参数化。
类别定义时的逻辑完全一样,只是里面成员变量的类型不同 (如果需要多个相似的类,需要定义多个文件,不同的只是变量的类别,而逻辑是完全一样的
如果使用泛型,只要代码在编译时没有出现警告,就不会遇到运行时ClassCastException (类型转换异常)
泛型的定义:在类名后面加
    <T>代表变量的类型可以是任意的 可以使用任何的类型来实例化泛型类型中的类型  
     <T extends 另一个类> 代表变量的类型有限制
 
public class GenericFoo<T> {
    private T foo;
    public void setFoo(T foo) {
         this.foo = foo;
    }
    public T getFoo() {
        return foo;
    }
}
新建该类型的对象时,若要传递的值类型不确定则应这样创建。
GenericFoo<? extends List> ge = null;
ge = new GenericFoo<ArrayList>();
ge = new GenericFoo<LinkedList>();
ge 可以指向List的子类
 
GenericFoo<? super List> ge = null;
ge = new GenericFoo<Object>();
ge 可以指向List的父类
 
2. For-Each循环的加入简化了集合的遍历
其語法如下
for(type element : array) { System.out.println(element).... }
当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息。
 
3.自动装箱/拆箱大大方便了基本类型数据和它们包装类的使用。
自动装箱:基本类型自动转为包装类。(int〉〉Integer)
自动拆箱:包装类自动转为基本类型。(Integeer〉〉int)
 
4。可变参数:
    可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象。但如果将方法中的参数定义为数组,那么只能传递数组对象而不能传递离散的值。
 可变参数必须要作为方法参数的最后一个参数,即一个方法不可能具有两个或两个以上的可变参数。
 
5.枚举(Enum):
定义一个枚举类型:
    public enum Color{
        Red,
        White,
        Blue
    }
使用:Color myColor = Color.Red;
 
每个枚举的成员其实就是您定义的枚举类型的一個实例(Instance)。换句话说,当定义了一个枚举类型后,在编译时刻就能确定该枚举类型有几个实例,分别是什么。在运行期间我们无法再使用该枚举类型创建新的实例了,这些实例在编译期间就已经完全确定下来了。
 
6.静态导入:import static
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值