zoukankan      html  css  js  c++  java
  • 属性的几种初始化方法

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

  • 相关阅读:
    一步一步写数据结构(线索二叉树)
    Android studio 下JNI编程实例并生成so库
    IOS和Android音频开发总结
    IDEA常用快捷键
    Spring事务简介
    IDEA新建Springboot项目
    140201126杨鹏飞作业六
    140201126杨鹏飞作业三
    140201126杨鹏飞作业七
    自我介绍
  • 原文地址:https://www.cnblogs.com/wjc920/p/9256169.html
Copyright © 2011-2022 走看看