成员初始化与final

来源:互联网 发布:搜狐证券软件 编辑:程序博客网 时间:2024/05/29 15:19

成员初始化


成员初始化的顺序:先静态对象(如果它们尚未因前面的对象创建过程而被初始化),然后再是“非静态”对象。

一、 显示的静态初始化

public class Spoon{    static int i;    static double j;    static{        i = 27;        j = 10.23;    }   }

这段代码中static块只执行一次,即只在第一次生成对象的时候。

二、数组初始化

如:

int[ ] a1 = {1,2,3,4,5};      int[ ] a2;    a2 = a1;

以上代码只是将a1的引用复制给了a2,即操作a2数组就等于操作a1,因为a1和a2指向的是同一个引用。

三、可变参数列表

public class OverloadVarargs{    static void f(float i,Character... args){        System.out.println("first");    }       static void f(char c,Character... args){        System.out.println("second");    }    public static void main(String[] args){        f(1,'a');        f('a','b');    }   }   

以上可变参数的方法重载,最好在可变参数之前加上一个非可变参数,因为这样可以使java编译器更准确的选择具体哪一个重载方法。



关于final的使用

final关键字,分三种情况来分析:数据、方法和类。

1.final数据,必须是基本数据类型,用final修饰表这是一个常量,不可被修改。(static强调只有一份,final说明是一个常量)

2.final参数,将参数指明为final,意味着无法在方法中更改参数引用所指向的对象。

3.final方法,将某个方法指定为final说明,该方法被锁定,防止任何继承类来修改。

4.final类,将某个类指定为final则说明,该类是最终的,不希望被继承,其该类下所有的方法也是final。

阅读全文
0 0
原创粉丝点击