欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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();
	}
}

那么它们初始化的顺序是什么呢?

首先是静态数据成员,然后是非静态数据成员,然后才会执行你调用的构造函数的代码
如果是大家都是静态或者非静态,则按照变量定义的先后顺序决定初始化顺序
(有错误欢迎大家指正)

相关标签: java java