学习笔记20170628
来源:互联网 发布:c语言计算时间间隔 编辑:程序博客网 时间:2024/06/12 00:15
一、初始化块
1、普通初始化块
初始化块是Java类里可以出现的第四种成员(前面依次有成员变量、方法和构造方法),一个类里可以有多个初始化块,执行顺序是:前面定义的初始化块先执行——>后面定义的初始化块后执行——>类的构造方法,初始化块的修饰符只能是static,初始化块里的代码可以包含任何可执行性语句,包括定义局部变量、调用其他对象的方法,以及使用分支、循环语句等。
例如:
public class Person{
//下面定义一个初始化块
{
int a = 6;
if(a>4){
System.out.println("Person初始化块:局部变量a的值大于4");
}
System.out.println("Person初始化块");
}
{
//定义第二个初始化块
System.out.println("Person的第二个初始化块");
}
//定义无参的构造方法
public Person(){
System.out.println("Person类的无参构造方法);
}
public static void main(String[] args){
new Person();
}
}
上面程序的main()方法只创建了一个Person对象,程序的输出如下:
Person初始化块:局部变量a的值大于4
Person初始化块
Person的第二个初始化块
Person类的无参构造方法
注意:虽然java允许一个类里定义2个普通初始化块,但这没有任何意义。因为初始化块是在创建java对象时隐式执行的,而且它们总是全部执行,因此完全可以把多个普通初始化块合并成一个初始化块,从而可以让程序更加简洁,可读性更强。
2、静态初始化块
如果定义初始化块时使用了static修饰符,则这个初始化块就变成了静态初始化块,也被称为类初始化块(普通初始化块负责对对象执行初始化,类初始化块则负责对类进行初始化)。静态初始化块是类相关的,系统将在类初始化阶段执行静态初始化块,而不是在创建对象时才执行。因此静态初始化块总是比普通初始化块先执行。
注意:静态初始化块也被称为类初始化块,也属于类的静态成员,同样需要遵循静态成员不能访问非静态成员的规则,因此静态初始化块不能访问非静态成员,包括不能访问实例变量和实例方法。
- 学习笔记20170628
- 学习笔记?
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 用USB安装Linux注意事项
- android 自定义日历
- 问题想法集合【】
- 快速消费品行业的营销费用的管理分类
- Retrofit2使用
- 学习笔记20170628
- 我要你
- 2017年初绝对想尝试的25个新Android库
- 判断指定的进程或程序是否存在方法小结(vc等)
- 用MySQL实现微博关注关系的方案分析
- sql查询列、字段重复值及操作
- bootstrap-treeview 中文api
- 【java】创建文件夹,创建文件
- redis主从数据库复制