java的类成员初始化

本文探讨了Java中成员变量的初始化时机和顺序。Java的基本类型变量会默认初始化,如int为0,而对象引用则为null。初始化成员变量可通过多种方式,包括直接赋值、方法调用、构造器和静态初始化块。初始化顺序遵循静态数据成员先于非静态,然后是非静态成员变量,最后执行构造函数内的代码。静态成员按定义顺序初始化,非静态成员同样遵循定义顺序。了解这些基础知识对于编写清晰、健壮的Java代码至关重要。
摘要由CSDN通过智能技术生成

从头开始学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();
	}
}

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值