全局变量(或者属性)的初始化问题

Posted pxb2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全局变量(或者属性)的初始化问题相关的知识,希望对你有一定的参考价值。

总结:定义的全局变量(即类的属性)——数组、基本数据类型、其他引用类型变量,

  • 采用静态初始化方式,即定义变量的同时进行初始化;
  • 采用动态初始化方式,只在属性处定义变量,初始化放在方法中进行;
  • 错误操作:先定义属性中的变量,接着换行再进行初始化。(详细见下)

1.定义变量的时候,立刻初始化,即静态初始化;

public class Test {
    int a = 1;//静态初始化基本数据类型

    String[] s = {"Hello","World","你好,世界"};//静态初始化引用类型数组
    Example[] e = {new Example(2019,"小明"),new Example(2018,"小红")};

}
class Example{
    int id;
    String name;

    public Example(int id, String name) {
        this.id = id;
        this.name = name;
    }
}

2.只定义,最后在方法中进行初始化;

public class Test02 {
    int a;
    String[] s;
    Example[] e = new Example[2];
    public void se(){
        a = 1;//动态初始化,必须在方法中,进行
        e[0] = new Example(2019,"小明");//同理,数组的动态初始化也必须在方法中进行,静态方法或者动态方法均可
        e[1] = new Example(2018,"小红")
    }
}
class Example{
    int id;
    String name;

    public Example(int id, String name) {
        this.id = id;
        this.name = name;
    }
}

3、错误初始化操作(如下代码报错)

public class Test03 {
    int a;
    a = 1;//直接对全局变量(即属性),先定义,接着初始化,这是错误的
    String[] s;
    s = {"ab","cd","ef"};
    Example[] e = new Example[2];
    e[0] = new Example(2019,"小明");//同理,数组也不能这样初始化操作
    e[1] = new Example(2018,"小红");
}
class Example{
    int id;
    String name;

    public Example(int id, String name) {
        this.id = id;
        this.name = name;
    }
}

 

以上是关于全局变量(或者属性)的初始化问题的主要内容,如果未能解决你的问题,请参考以下文章

JS全局变量是全局对象的属性,函数局部变量为啥就不是函数的属性呢?

Java中成员变量局部变量全局变量静态变量成员变量

Java中成员变量局部变量全局变量静态变量成员变量

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

IOS开发-UI学习-使用代码创建button

关于extern和static关键字引出的一些关于作用域和链接属性和存储类型的问题