首页 > 代码库 > static块语句
static块语句
1、static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法。
主要语句:
package exam2;public class A { public A() { System.out.println("constructor of A"); } static { System.out.println("static block of A"); } public static void main(String[] args) { // 因为执行main(),所以A会被加载,A的static{}会执行,但是不会执行A的构造函数,除非有new A()。 }}class B { static int b; public B() { System.out.println("constructor of B"); } static { System.out.println("static block of B"); }}class C extends B{ public C() { System.out.println("constructor of C"); } static { System.out.println("static block of C"); }}
输出为A的static语句.
(1)当main()函数的语句为
B b;//不会执行B的static块语句
(2)当main()函数的语句为
B b=new B();//执行B的static块语句,然后执行B的construct语句
(3)当main()函数的语句为
System.out.println(B.b);// 单单执行这条语句会执行B的static块语句,即使b没有赋值
(4)
B b=new C();//先执行父类B的static,然后执行子类C的static,然后执行父类B的构造函数,最后执行子类的构造函数
注意:如果之前已经执行过B的static,再B b=new C(),不会再输出static语句了,类只会加载一次。
Done
static块语句
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。