-
静态代码块
-
静态代码块含有static和{ }关键字,在类被加载的时候就运行了,并且只运行一次,运行时优于各种代码块以及构造函数如果一个类中有多个静态代码块,会按照书写顺序依次执行。
-
构造代码块
-
构造代码块用{ } 表示,和静态代码块的区别是少了static关键字.
-
执行时机
构造代码块在创建对象时被调用,每次创建对象都会调用一次,但是优先于构造函数执行。 -
构造函数
1.构造函数的命名必须和类名完全相同。在java中普通函数可以和构造函数同名,但是必须带有返回值;
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的;
3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的;
4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的方法不存在这一特点. -
普通代码块
普通代码块和构造代码块的区别是,构造代码块是在类中定义的,而普通代码块是在方法体中定义的。且普通代码块的执行顺序和书写顺序一致。 -
执行顺序
-
静态代码块>构造代码块>构造函数>普通代码块
public class CodeBlock { static{ System.out.println("静态代码块"); } { System.out.println("构造代码块"); } public CodeBlock(){ System.out.println("无参构造函数"); } public void sayHello(){ { System.out.println("普通代码块"); } } public static void main(String[] args) { System.out.println("执行了main方法"); new CodeBlock().sayHello();; System.out.println("---------------"); new CodeBlock().sayHello();; } }
Java面向对象构造的分类及要点
最新推荐文章于 2021-02-24 18:07:26 发布