Chinaunix首页 | 论坛 | 博客
  • 博客访问: 279838
  • 博文数量: 88
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 840
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-20 21:13
文章分类

全部博文(88)

文章存档

2022年(1)

2017年(1)

2016年(2)

2015年(1)

2014年(83)

分类: Java

2014-07-31 08:45:50

在Java中,有两种初始化块:静态初始化块和非静态初始化块.

静态初始化块:使用static定义,当类装载到系统时执行一次.若在静态初始化块中想初始化变量,那仅能初始化类变量,即static修饰的数据成员.
非静态初始化块:在每个对象生成时都会被执行一次,可以初始化类的实例变量.

非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被运行.

括号里的是初始化块,这里面的代码在创建java对象时执行,而且在构造器之前执行!

其实初始化块就是构造器的补充,初始化块是不能接收任何参数的,定义的一些所有对象共有的属性、方法等内容时就可以用初始化块了初始化!!

好处是可以提高初始化块的复用,提高整个应用的可维护性。--《疯狂java讲义》

点击(此处)折叠或打开

  1. package test;

  2. public class Main1 {
  3.     
  4.     {
  5.         System.out.println("In non-static initialization block!");
  6.     };
  7.     
  8.     static {
  9.         System.out.println("In static initialization block!");
  10.     };

  11.     public Main1() {
  12.         System.out.println("In Constructor1!");
  13.     }

  14.     public void show() {
  15.         System.out.println("In show()!");
  16.     }

  17.     /**
  18.      * @param args
  19.      */
  20.     public static void main(String[] args) {
  21.         Main1 ti = new Main1();
  22.         ti.show();
  23.     }
  24. }
运行结果:
In static initialization block!
In non-static initialization block!
In Constructor1!
In show()!

阅读(389) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~