java的类成员初始化
程序员文章站
2022-07-12 22:50:38
...
从头开始学java第一篇
有的时候我们可能会疑惑,到底什么时候初始化成员变量比较合适??
成员变量加载的顺序又是什么???
该成员变量如何初始化????
我是菜鸡!
java基本类型的初始化
首先我们来看这样一个例子
viod f() {
int i;
i++;
}
这样会发生什么??
没错,很明显,会提示你 i 没有初始化
但是有趣的是如果你在类的字段中声明一个基本类型
例如:
public class test{
int i;
public static void main(String[] args){
System.out.println(i);
}
}
这样你的字段 i 是有初始值的 !int 类型的初始值为 0
但是如果定义的不是一个基本类型,而是一个对象的引用的时候,如果不进行初始化就会得到一个null
怎么为我们的成员变量初始化呢?
几种方法:
public class Test{
// 第一种
private int i = 1;
private Teacher teacher = new Teacher();
//第二种
private int a = b();
private int b(){
return 2;
}
//第三种
private int c;
public Test(){
c = 1;
}
// 第四种
private static Teacher teacher;
static {
teacher = new Teacher();
}
// 第五种
private Student student;
{
student = new Student();
}
}
那么它们初始化的顺序是什么呢?
首先是静态数据成员,然后是非静态数据成员,然后才会执行你调用的构造函数的代码
如果是大家都是静态或者非静态,则按照变量定义的先后顺序决定初始化顺序
(有错误欢迎大家指正)
上一篇: 【STL源码分析】vector
下一篇: 类的const成员初始化