成员初始化与final

xiaoxiao2021-02-28  150

成员初始化


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

一、 显示的静态初始化

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。

转载请注明原文地址: https://www.6miu.com/read-60081.html

最新回复(0)