课时17:静态代码块
摘要:
1. 静态代码块及其分类
2. 非主类中静态块定义
3. 静态代码块主要目的
4. 主类中静态代码定义
01. 静态代码块及其分类
静态代码主要指的是使用 Static 关键字定义的代码块,静态块的定义需要考虑到两种情况:主类中定义静态块、非主类中定义静态块。
02. 非主类中静态块定义
范例:在非主类中进行静态块的定义
Class person{ Public person(){ System.out.println(“【构造方法】person类构造方法执行”); } Static{ System.out.println(“【静态块】静态块执行。”); } { System.out.println(“【构造块】person构造块执行”); } } Public class JavaDemo{ Public static void main(string args[]){ New person(); New person(); New person(); } }
03. 静态代码块主要目的
此时发现静态代码块会优先于构造块执行,并且无论有多少个实例化对象出现静态代码块只会执行一次,静态代码块的主要目的是为了类中的静态属性初始化。
范例:静态属性初始化
Class message{ Public static string getCountry () { //该消息的内容可能来自于网络或其他服务器 Return“中华人民共和国”; } } Class person{ Private static String country; Static{ //可能有很多语句要执行 Country=Message.getCountry();//编写一部分的代码 System.out.println(country); } } Public class JavaDemo{ Public static void main(String args[]{ New person(); } }
04. 主类中静态代码定义
对于静态代码块还必须考虑另外一种情况,在主类中定义的形式。
范例:在主类中进行静态代码块的定义
Public class JavaDemo{ Static{ System.out.println(“*********程序初始化*********”); } Public static void main(String args[]){ System.out.println(“www.mldn.cn”); } }
静态代码块优先于主方法先执行。在 jdk 1.7 之前我们可以通过静态代码块去执行Java程序。BUG 在 jdk 1.7 之后就修复了。永远都是主方法为程序起点,只不过他提供了一个比主方法优先级更高的静态代码块,帮助你实现一些准备过程。