属性的几种初始化方法

it2022-05-05  33

1.初始化属性变量的几种时机:

    1.1定义时初始化;

    1.2构造器中初始化;

    1.3在使用之前初试化;

    1.4使用实例初始化。

package propertiesinit.one; public class Main { //1.定义时初始化definitionInit private int definitionInit=0; private int constructorInit; private String usingInit; private String instanceInit; //2.构造方法初始化constructorInit public Main() { constructorInit=0; } @Override public String toString() { //3.使用时初始化usingInit if(usingInit==null){ usingInit="usingInit"; } return usingInit; } { //4.实例初始化instanceInit instanceInit="instanceInit"; } }

2.code1代码会报错,c变量未初始化;code2正常运行。

package classaccess.one; //code1 public class Main { public static void main(String[] args) { ClassAccess c; //ClassAccess c = null; System.out.println(c.i);//The local variable c may not have been initialized } } class ClassAccess{ private ClassAccess(){} public static int i=1; } //code2 package classaccess.one; public class Main { public static void main(String[] args) { //ClassAccess c; ClassAccess c = null; System.out.println(c.i); } } class ClassAccess{ private ClassAccess(){} public static int i=1; }

注:ClassAccess c;和ClassAccess c = null;是有区别的,前者只是定义了c,后者不仅定义c,同时将c初始化为null。在code2中我们可以注意到,在c为null的情况下我们是可以正常访问引用类型静态成员的(?)。

转载于:https://www.cnblogs.com/wjc920/p/9256169.html


最新回复(0)