黑马程序员———JDK1.5新特性1、【静态导入】、【for循环增强】、【可变参数】,【自动拆箱装箱】

来源:互联网 发布:php命名空间视频 编辑:程序博客网 时间:2024/05/16 00:56
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

1、静态导入

在java5中,import得到了增强,可以减少代码的书写量,但是在一些情况下会影响代码的可读性
当我们要编写一个类时,要频繁的调用其他类中的静态成员候,我们可以采取静态导入的方法。

 

好处:从上面采用静态导入时使用System.out.println方法是可以省略System类名使用Integer.MAX_VALUE也直接可以使用MAX_VALUE,

在例子里只是随便举了几个简单的例子,要是在导入多个类中的成千上万个静态成员,那么效果就出来了,减少很多的代码量。

缺点:1、减少可读性2、当导入多个类,不同类中出现了同名的静态成员,那么在编译器调用的时候,编译器无法识别,会报错!

使用原则:1、格式:import static + static成员的完全限定名或通配符,static import是错的!

2、书写完全限定名时不推荐写通配符.*;最好是用什么导什么。

3、提防含糊不清的命名static成员。如上面Integer和Long4、尽量少用,需要才用

2、for的增强


语法:for(type 变量名:集合变量名){对集合变量操作}
注意事项:1、()中变量名又称为迭代变量必须在()中定义
        2、集合变量可以是以数组的形式或实现了Iterator接口的集合类对象的引用

3、自动装箱、拆箱

1、什么是自动拆箱、装箱

如下:

       自动拆箱:  int i= new Integer(1);

       自动装箱:  Integer  i= 10;

当我们使用上面代码时,系统会自动帮我们如下完成转换:

    int i=new Integer(1);

    int i=new Integer(1).intValue();

    Integer i=10

    Integer i=new Integer(10);

2、8中基本数据类型和8种封装数据类型的区别:

  基本数据类型时在栈中分配内存,而封装数据类型是在堆中分配内存的,相当一个类,属性为基本类型

  封装数据类型,封装了很多操作属性值得方法,而基本数据类型没有

  如System.out.println(new Inteher(1));其实系统自动调用了Integer中的toString方法。

3、基本类型的对象缓存

  

4、可变参数

正常方法定义了参数列表,调用方法的时候就必须按照参数列表一次传入实参,但是如果我们要给方法传入的参数不确定怎么解决,我解决的方法是在方法参数列表中定义传入一个数组,然后自己规定数组的每一项表示什么参数,自己在内部使用即可,于是java5就定义了可变参数,所谓的可变参数,当我们按照某种格式输入不定参数时,系统给改调用方法隐藏维护了一个数组,存储接受来的值,然后在内部以数组的形式调用参数

格式: 函数名(类型名1 变量名1,类型名...变量名)

从上面程序看可变参数的特点:

     1、只能出现在参数列表的最后,也就是说方法乘不能写作:cheng(int...t,double x)

     2、...只能放在变量类型和变量名之间,前后有无空格都行

     3、调用可变参数的方法时,编译器为该可变参数隐含创建了一个数组,在方法中以数组的形式访问可变参数

优点:可以传入不定参数;缺点:不定参数的类型必须一样,而不能传入不同类型的可变参数。

 

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
0 0
原创粉丝点击