码迷,mamicode.com
首页 > 编程语言 > 详细

java中构造代码块、static代码块和局部代码块的区别

时间:2017-12-05 13:27:12      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:针对性   system   对象   pre   作用   区别   public   icc   stat   

class StaticCode{
    int age;
    // static 代码块
    static{
        System.out.print("static ");
    }
    //构造代码块
    {
        System.out.print("55 ");
    }    
    // 构造函数
    StaticCode(int age){
        this.age=age;
        System.out.print(age+",");
    }
    void show(){
    // 局部代码块
        {
            int age=30;
        }
        System.out.print("show:"+age+",");
    }
}
class StaticCodeDemo{
    public static void main(String[] args){
        StaticCode p1=new StaticCode(20);
        p1.show();
        StaticCode p2=new StaticCode(20);
    }
} 

// 执行结果为:static,55,20,show,55,20
// 分析:
// 1、先执行StaticCode这个类,所以static
// 2、创建p1对象,执行构造代码块,55
// 3、执行构造函数初始化,20
// 4、执行p1.show(),show:20
// 5、 创建p2对象,执行构造代码块,55
// 6、执行构造函数初始化,20

// 总结: static 代码块随着类的加载,只加载一次。作用是初始化类。
// 构造代码块,可以给所有对象进行初始化的。创建几个对象就调用几次,是给对象进行通用性的初始化。
// 构造函数是给对应的对象进行针对性的初始化。
// 局部代码块限定函数中变量的生命周期,age=30局部代码执行完。自动释放掉了。

java中构造代码块、static代码块和局部代码块的区别

标签:针对性   system   对象   pre   作用   区别   public   icc   stat   

原文地址:http://www.cnblogs.com/bigben223/p/7986179.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!