• 属性的几种初始化方法


    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的情况下我们是可以正常访问引用类型静态成员的(?)。

  • 相关阅读:
    [蓝桥杯2019初赛]
    HDU2054
    HDU1175
    POJ3259
    数据结构
    欢迎来测!!!
    jsp页面el取不到值,java片断可以取到
    HTML中table边框的显示总结转载▼
    jquery插件图片延时加载实例详解(转)
    引用CDN内容的方法总结(转)
  • 原文地址:https://www.cnblogs.com/wjc920/p/9256169.html
Copyright © 2020-2023  润新知