Java向前引用和静态初始化

来源:互联网 发布:马云说的阿里健康 编辑:程序博客网 时间:2024/05/29 17:14

java语言本身是支持向前引用 

所谓向前引用,就是在定义类、接口、方法、变量之前使用它们。 反之,向后引用就是我们正常的写法

示例1:

class Demo1 {public static void main(String[] args) {Demo1 de = new Demo1();de.showName();}public  void showName(){//调用之前从代码层面来看name并没有定义System.out.println(name);}//定义变量private String name = "dingjl";}

示例2:

class StaticInitTest {static int count = 2;static{System.out.print("执行静态初始化块");name = "name在static块中重新赋值了";age = 26;score = 70.8;//System.out.print("name = "+name);}//定义静态变量static String name = "dingjl";static int age = 10;static double score;public static void main(String[] args) {System.out.printf(" count =%d\n name=%s \n",count , name);System.out.printf(" age = %d \n score = %f" , age,score);}}


1.静态初始化块中的name初始化,位于name变量定义之前

2.系统执行顺序 先执行静态块 在执行 name="dingjl";

所以示例2输出结果


如果将第9行注释去掉将为怎样呢?


0 0
原创粉丝点击