栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中代码块的执行

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中代码块的执行

代码块的格式:

{执行的语句}

代码块的主要用途

当我们定义了代码块之后,我们每一次调用构造器,代码块的语句都会被执行一次。我们可以看出代码块在构造器的第一列就被调用执行了。如果有多个代码块则会按照顺序进行调用

public class Test {
    public static void main(String[] args) {
        aa b= new aa("小明");
        aa c= new aa("小明",99);
    }
}
class  aa{
    public String name;
    public  int age;
    {

        System.out.println("我是代码块");
    }
    public  aa(String name){
        this.name=name;
        System.out.println(name+age);
    }
    public  aa(String name,int age){
        this.name=name;
        this.age=age;
        System.out.println(name+age);
    }
}


注意事项

static代码块叫做静态代码块,作用时对类进行初始化,而且他随着类的加载而执行,并且只会执行一次。如果时普通代码块,每创建一个对象,就会执行。那么类什么时候会被加载那???①创建对象实例时(new)②创建子类对象实例,父类也会被加载③使用类的静态成员(静态方法,静态变量)

对于第一种情况我们已经演示过,我们来看第二种情况,当我们创建aa的子类bb,并且实例化bb,会调用父类的代码块

public class Test {
    public static void main(String[] args) {
        bb b=new bb();
    }
}
class  aa{
    public static String name;
    public  int age;
    static {

        System.out.println("我是代码块");
    }
    {

        System.out.println("我是代码块2");
    }
}
class bb extends aa{

}

 对于第三种情况,我们调用aa的静态方法,发现代码块也被调用了,至于为什么第二个输出null,是因为这只是加载了类,却并没有创建类实例对象。

public class Test {
    public static void main(String[] args) {
        System.out.println(aa.name);
    }
}
class  aa{
    public static String name="张三丰";
    public  int age;
    static {

        System.out.println("我是代码块");
    }
    {

        System.out.println("我是代码块2");
    }
}

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/721235.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号