加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

jvaa之初始化块

发布时间:2020-12-15 06:44:14 所属栏目:Java 来源:网络整理
导读:1.初始化块的作用 :对java对象进行初始化; 2.程序的执行顺序 :声明成员变量的默认值--显示初始化,多个初始化块依次被执行(同级别下按先后顺序执行)--构造器在对成员进行赋值操作。 public class Person extends Object{ String name; public Person()

1.初始化块的作用:对java对象进行初始化;

2.程序的执行顺序:声明成员变量的默认值-->显示初始化,多个初始化块依次被执行(同级别下按先后顺序执行)-->构造器在对成员进行赋值操作。

public class Person extends Object{
    String name;
    public Person() {
        this.name = "tom";
        System.out.println("执行的是构造方法");
    }
    {
        System.out.println("执行的是非静态代码块");
    }
}
class Main {
    
    static void main(String[] args) {
        Person p = new Person();
    }
}

输出:

执行的是非静态代码块1

执行的是非静态代码块2

执行的是构造方法

3.静态代码块:当类在被载入时,类属性的声明和静态代码快先后顺序被执行,且只被执行一次;静态代码块里面只能用static修饰的属性和方法;

package insof;

int age;
    );
    }
    {
        System.out.println("执行的是非静态代码块1");
    }
    {
        System.out.println("执行的是非静态代码块2");
    }
    static{
        age = 11;
        System.out.println("执行的是静态代码块1");
        showAge();
    }
    {
        System.out.println("执行的是静态代码块2" showAge() {
        System.out.println(age);
    }
}
 Person();
        Person p1 =  Person();
    }
}

输出:

执行的是静态代码块1
11
执行的是静态代码块2
执行的是非静态代码块1
执行的是非静态代码块2
执行的是构造方法
执行的是非静态代码块1
执行的是非静态代码块2
执行的是构造方法

说明:每次new一个对象,给静态代码块都要被执行,而静态代码块只执行一次。

非静态代码块:

  • 可以有输出语句;
  • 可以对类的属性声明进行初始化操作;
  • 可以调用静态和非静态的属性和方法;
  • 若有多个非静态的代码块,那么按照从上到下的顺序一次执行;
  • 每次创建对象的时候,都只会执行一次,且优先于构造方法;

静态代码块:用static修饰的代码块

  • 可以有输出语句;
  • 可以对类的属性声明进行初始化操作;
  • 不可以对非静态的属性初始化,即:不可以调用非静态的属性和方法;
  • 静态代码块的执行顺序优先于非静态代码块;
  • 静态代码块只执行一次;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读