`
liuwei1981
  • 浏览: 752613 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:156173
社区版块
存档分类
最新评论

70.static自由块

 
阅读更多

接下来讲讲static自由块。

 

前面提到了自由块(游离块),那么作为Java源代码特殊的组成部分,是可以用static来修饰的。修饰后的结果我们来分析下。

 

自由块可以看成是一种特殊的方法,这个方法没有方法名、没有输入参数、没有返回值,不能进行方法调用。从这个角度来看,在自由块前面也可以加上static关键字来修饰。这样,这个自由块就成了静态自由块。静态自由块通常用于初始化静态变量。

public class Count {
 private int serialNumber;

 public static int counter;

 static {
  System.out.println("static自由块被执行");
  counter = 1;
 }

 public static int getTotalCount() {
  return counter;
 }

 public Count() {
  counter++;
  serialNumber = counter;
 }

 public static void main(String[] args) {
  System.out.println("main() invoked");
  System.out.println("counter = " + Count.counter);
 }
}


在这个类中,定义了一个静态的int类型变量counter,然后在static自由块中初始化这个变量。编译并运行这个程序,可以得到如下的输出:
static自由块被执行
main() invoked
counter = 1


因为static自由块是类相关而不是实例相关的,所以,即使没有实例化对象,它也会被执行(在main()方法中没有实例化这个类)----它将向控制台输出“static自由块被执行”并将静态变量“counter”初始化成1。

 

 

分享到:
评论

相关推荐

    你必须知道的495个C语言问题(PDF)

    4.4 我有个函数,它应该接受并初始化一个指针void f(int *ip) f static int dummy = 5; ip = &dummy;g 但是当我如下调用时: int *ip; f(ip); 调用者的指针却没有任何变化。. . . . . . . . . . . . . . . 18 4.5 我...

    net学习笔记及其他代码应用

    public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i ) return 0; else if(i > 0 && i ) return 1; else return Foo(i -1) + Foo(i - 2); } } 4.C#中的...

    VB课程设计俄罗斯方块

    游戏速度的自由选择无非就是改变时钟控件的频率,我们在菜单中添加了选择速度的功能,还有添加了考验功能,将欲览窗中的方块造型隐藏,给玩家提高了难度,如果你不愿意接受考验也可以点击显示还原成原来状态。...

    java 面试题 总结

    Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。 22、JSP中动态INCLUDE与静态INCLUDE的区别? 动态INCLUDE用jsp:...

    LuaBind 源码 (Lua增强库)

    为了暂停(yielding)C++函数,(不支持在C++侧和Lua侧传送数据块),你可以使用 yield 策略. 接受 object 参数的resume_function()的重载版本要求对象必须是一个协程对象.(thread) lua_State* thread = lua_newthread(L...

    C#微软培训资料

    <<page 1>> page begin==================== 目 目目 目 录 录录 录 第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 ... 比尔....这一天 微软公司正式推出了其下一代...

    c#学习笔记.txt

    public static void M2(int i) { /* ... */ }} class{…….D cd1 = new D(C.M1);………….} 委托是一个数据结构,该数据结构引用一个静态方法,或引用一个对象实例和该对象的实例方法。在 C 或 C 中与委托最接近的...

    超级有影响力霸气的Java面试题大全文档

    Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。 25、JSP中动态INCLUDE与静态INCLUDE的区别?  动态INCLUDE用jsp:...

    Delphi 7以来的新语法特性

    众所周知,在Delphi中,类的private和protected域中的变量可以被同一单元中可以自由的被访问(Delphi的类没有“友元”的概念,但同一个unit中可以说自动友元化了),而并非是真正的私有或只能被继承类访问。...

    易语言程序免安装版下载

    修改高级表格支持库,允许“复制选定文本()”“剪切选定文本()”在“允许选择块”属性为假时复制剪切当前单元格中的文本。 18. 修改扩展界面支持库三,为“高级选择夹”增加“不点燃选中子夹”属性。 19. 修改XML...

    gatsby-advanced-starter:面向GatsbyJS的高性能骨架启动器,专注于SEOS社交功能开发环境

    您可以自由使用任何UI框架/样式选项。 我该如何使用呢? 如果您是Gatsby的新手,并且对大多数必需功能的实现感兴趣,那么这是一个不错的起点。 如果您对构建超快速网站的基础感兴趣,则可以将该项目用作“最小”...

    java堆栈的区别 -- 详解

    3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字...

    div的position属性

    相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。 如下代码实现相...

    X2WotC_MultiplayerBugFixes

    代码风格该代码样式与所使用的样式非常相似: 软标签(4个空格) 大括号始终换行最大行长为79个字符自由使用块之间的空间大括号即使对于单行if / else主体连续行上的一个额外缩进以下代码应说明所有这些: var ...

    vc++ 开发实例源码包

    电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大...

    3D旋转教学演示

    主要程序块: //天津 王红广 版权所有 //允许自由转载 但要注明出处 static float theta=15.0f;;;; float vPoint0[4],vPoint1[4],vPoint2[4],vPoint3[4],vPoint4[4];;;; float vP0[4],vP1[4],vP2[4],vP3...

    C语言FAQ 常见问题列表

    o 5.4 我有个函数,它应该接受并初始化一个指针 void f(int *ip) { static int dummy = 5; ip = &dummy;} 但是当我如下调用时: int *ip; f(ip); 调用者的指针却没有任何变化。 o 5.5 我能否用 void** 指针作为参数,...

    《你必须知道的495个C语言问题》

    1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 6 1.11 extern在函数声明中是什么意思? 6 1.12 关键字auto到底有什么用途? 7 类型定义(typedef) 7 1.13 对于用户定义类型,...

    vc++ 应用源码包_1

    电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大...

    vc++ 应用源码包_2

    电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大...

Global site tag (gtag.js) - Google Analytics