代码块的使用

*基本介绍:

  代码块又称初始化块,属于类中的成员,类似于方法,将逻辑语句封装在方法块中,通过{}包围起来。

  代码块和方法不同,没有返回,没有参数,只有方法体,而且不会通过对象或类显式调用,而是加载类时,创建对象时隐式调用

*基本语法:

  修饰符{

  代码;

  };

  注意点:

  1,修饰符可选,要写的话,只能写staitc

  2,代码块分为两类,使用static修饰的叫静态代码块,没有static修饰的叫普通代码块

  3,逻辑语句可以为任何逻辑语句

  4,;可以省略

*代码块使用注意和细节讨论:

  1,static代码块也叫静态代码块,作用就是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次 ,如果是普通代码块,每创建一个对象就执行

   2,类什么时候被加载:1,创建对象实例时(new)2,创建子类对象实例,父类也会被加载 3,使用类的静态成员时(静态属性,静态方法)

  3,普通代码块在创建对象对象实例时,会被隐式的调用。被创建一次,就会调用一次,如果只是使用类的静态成员,普通代码块不会被执行。

  小结:1,static代码块是类加载时,执行,执行一次  2,普通代码块是在创建对象时调用,创建一次,调用一次,3,类加载的三种情况。

  4,创建一个对象时,在一个类中,调用顺序是:

    (1),调用静态代码块和静态属性初始化【静态代码块和静态属性初始化调用优先级一样,如果有多个,按照它们的定义顺序调用】

    (2),调用普通代码块和普通属性初始化【普通代码块和普通属性初始化调用优先级一样,如果有多个,按照它们的定义顺序调用】

    (3),调用构造方法

  5,构造器的最前面其实隐含了super()和调用普通代码块,静态相关的代码块,属性初始化,在类加载时就执行完了,因此是优先于构造器和普通代码块的执行的

  6,在继承关系中,它们的静态代码块和静态属性,普通代码块和普通属性的调用顺序为:

    (1),父类的静态代码块和静态属性(优先级一样,按定义顺序执行)

    (2),子类的静态代码块和静态属性(优先级一样,按定义顺序执行)

    (3),父类的普通代码块和普通属性(优先级一样,按定义顺序执行)  

    (4),父类的构造器

    (5),子类的普通代码块和普通属性(优先级一样,按定义顺序执行

    (6),子类的构造器

  7,静态代码块只能调用静态的成员(静态属性和静态方法),普通代码块可以调用任意成员

 

posted @ 2021-11-09 21:12  当个码农吧  阅读(345)  评论(0)    收藏  举报