易混淆知识点总结

来源:互联网 发布:数据机房新风 编辑:程序博客网 时间:2024/05/21 03:24

一、静态方法和静态代码块

1、静态代码块是在项目启动的时候自动执行的代码块,且只被执行一次,不需要调用,常用来执行类属性的初始化;

      静态方法是用static修饰的方法,不需要创建实例就可以用类名.方法名的方法进行调用。

2、静态方法中只能调用本类中的静态成员(包括静态变量和静态方法),而不能调用非静态成员。

      原因是:非静态的成员变量只能在创建实例对象之后才能被调用,而在静态方法调用之前是不需要创建任何实例对象的。

3、静态方法也不能以任何方式使用this和super等关键字,因为在使用静态方法之前这些对象还没有被创建。

4、静态变量是属于某个类的变量,而不是属于某个对象的变量,不能将某个方法中的变量定义为静态变量。

二、实例化子类时代码的执行顺序

父类中的静态代码块-----子类中的静态代码块-----父类中的非静态代码块-----父类中的无参构造方法-----子类中的非静态代码块-----子类中的构造方法

PS:静态代码块优先执行----其次为父类中的非静态代码块和构造方法----最后才是子类中的非静态方法和构造方法

      实例化子类时会先去父类中找无参构造方法,如果父类中没有该方法的话一定要在子类中用super方法调用父类中的带参构造方法

0 0
原创粉丝点击