黑马程序员技术交流社区

标题: 静态代码块,构造代码块,局部代码块的笔记 [打印本页]

作者: 海狮    时间: 2015-10-23 23:22
标题: 静态代码块,构造代码块,局部代码块的笔记
代码块:
静态代码块,构造代码块,局部代码块
静态代码块:
static{}
在类中,函数外,被static修饰的代码块
随着类的加载而执行,而且只执行一次。
作用:用于给类进行初始化。
构造代码块:{}
在类中,函数外,没有任何修饰符的代码块
作用:可以给所有对象进行初始化。
局部代码块:{}
在函数中的被{}包围的代码块,限定作用范围
例:
class Student
{
        public String name;
        public static String school="西山小学";
        {//构造代码块
                        System.out.println("构造代码块执行");

        }
        static{//静态代码块
                System.out.println("静态代码块执行");
        }

        Student(String name){//构造函数
                this.name=name;
                System.out.println("构造函数执行");
        }
        public String getName(){
                return name;       
                }
        public String getSchool(){
                return school;
        }
}
class TestDemo
{
        public static void main(String[] args)
        {
                Student stu=new Student("小花");
                System.out.println(stu.getName());
                {//局部代码块
                        int a=3;
                                System.out.println(a);
                }
                //System.out.println(a);//这句不注释会编译失败,提示找不到符号,说明变量a的作用域在局部代码块内
        }
}
打印结果:
静态代码块执行
构造代码块执行
构造函数执行
小花
3
由此可知,执行顺序静态代码块先执行(类加载时执行,构造代码块(实现对象时,在构造函数执行前)执行最后到构造函数执行



作者: 会盟天下英豪    时间: 2015-10-24 08:02
学习了。
作者: 汪冰伦    时间: 2015-10-25 08:16
谢谢分享,收益了
作者: 朦胧色彩    时间: 2015-10-25 15:03
感谢分享
作者: Arron    时间: 2015-10-25 18:46
好的 谢谢啦!`




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2