java中的初始化

java中的初始化有几种方式,其中包括声明时对数据成员初始化,构造函数初始化和初始化块;初始化块也分为静态初始化快和实例初始化块,静态初始化块由static关键字引导的用花括号括起来的语句块,它位于类的类体中,但不能在任何方法体中,静态初始化块在中的语句和声明静态变量时指定初值的初始化动作会按照在类中的定义顺序来执行,且只有在第一次加载类文件的时候进行初始化,其他情况不会进行初始化,而实例初始化块不能有static,而且不应该在实例初始化块中对静态变量进行初始化。一般来说,初始化块应该放在全部数据成员后面,否则,在该初始化块中这个数据成员除了能用作做操作数被赋值外,不能用作其他用途.例如:

class Person

int age;

age=10;

age=num;//正确,可以读取其后声明的变量

weight=30;//正确,可以给其后的声明的变量赋值

weight++;//错误,不能进行读取变量

int weight;

static int num=20;

一般来说,在不考虑继承和使用关键字this在一个构造方法中调用其所属类的另一个构造方法的前提下,类中的数据成员的初始化过程如下:

1,首次使用某个类(创建该类的对象或者访问该类的静态成员)时,Java系统查找相应的类文件并加载;

2,在载入类文件的同时系统首先会对该类的静态成员变量和静态初始化块分配存储空间并将它们初始化默认值,然后按声明静态变量时指定初值的初始化和静态初始化块中的语句在类中定义出现的顺序执行它们。这些初始化动作只会在其所属类的首次加载时执行一次。

3,类文件加载完毕后,如果是创建类,继续执行下列初始化动作。

4,系统首先为所有实例变量分配足够的存储空间并将它们初始化为默认值。

5,调用相关的构造方法,在执行构造方法中的语句前,首先按声明实例变量时指定的初值的初始化动作和实力初始化块中的语句在类定义中出现的顺序依次执行它们。

6,执行构造函数中的语句。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值