首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >双重构造函数代码块,Java中的静态代码块

双重构造函数代码块,Java中的静态代码块
EN

Stack Overflow用户
提问于 2013-05-31 09:02:37
回答 1查看 434关注 0票数 1

我偶然发现了这段似乎违反语法规则的java代码:

代码语言:javascript
运行
复制
1. public class Sequence { 
2.     Sequence() { System.out.print("c "); } 
3.     { System.out.print("y "); } 
4.     public static void main(String[] args) { 
5.         new Sequence().go(); 
6.     } 
7.     void go() { System.out.print("g "); } 
8.     static { System.out.print("x "); } 
9. }

参考第3行,如何像这样打开一个独立的代码块?我测试了它,它起作用了。然而,逻辑流程是相反的:y将在c之前打印。

此外,关于第8行,我不确定这个块试图做什么。它看起来像是一个类声明。在这种情况下,static关键字后面不应该跟一个类名吗?

有没有人能澄清我的疑虑?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-31 09:08:54

第8行中的代码称为静态初始化块。其中,第3行中的代码称为非静态初始化块。

静态初始化块首先被执行。如果有多个静态初始化块,它们将按出现的顺序执行。非静态初始化程序块(或简单的初始化程序块)的内容被复制到每个构造函数的内容中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16848267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档