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

  • 相关阅读:
    数据结构之内部排序--希尔排序
    数据结构之内部排序--直接插入排序
    MySQL
    力扣115,不同的子序列,动态规划,最大公共子序列问题变形
    算法复习——贪心
    算法复习——分治算法
    为什么我的打印机只能纵向打印不能横向打印
    git创建新的分支
    poj138——建立雷达,贪心,求线段交集
    Oracle数据库学习笔记
  • 原文地址:https://www.cnblogs.com/wjc920/p/9256169.html
Copyright © 2011-2022 走看看