zoukankan      html  css  js  c++  java
  • Java SE 第二十三,四讲 static与final使用陷阱

    1.static修饰方法:static修饰的方法叫做静态方法.对于静态方法来说,可以使用类名.方法名的方式来访问.推荐使用这种访问方式

    2.子类能够继承父类的静态方法,但是不能重写父类的静态方法.静态的方法不能被覆盖,静态的方法也不能覆盖,静态方法可以隐藏静态方法中.

    3.final关键字:final可以修饰属性,方法,类.

    4.final修饰类:一个类被final修饰时,表示该类是一个终态类,不能被继承.

    5.final修饰方法:当一个方法被final所修饰时,说明该方法是一个终态的方法,不能够被重写.

    6.final修饰属性:当一个属性被final所修饰时,表示该属性不能被改写.

    7.当final 修饰的一个原生数据类型,表示该原生数据类型的值不能发生变化(比如不能从10变为20);如果final修饰的是引用,那么不能更改引用值,表示该引用不能指向新的对象,但是引用指向对象的内容是可以改变的.

    8.对于final类型成员变量,一般来说有两种赋初值方式:

    a)在声明final类型的成员变量时就赋上初值

    b)在声明final类型的成员变量时不赋初值,但在类的所有构造方法中都为其赋上初值.

    public class FinalTest4

    {

    final int a;

    public FinalTest4()

    {

    a = 0;

    }

    public FinalTest4(int a)

    {

    this.a = a;

    }

    }

    9.static 代码块:静态代码块,静态代码块的作用也是完成一些初始化的炒作.首先执行静态代码块,然后执行构造方法.静态代码块是在类被加载时执行,而构造方法是在生成对象的时候执行;要想调用某个类来生成对象,首先需要将类加载到Java虚拟机上(JVM),然后由JVM加载这个类来生成对象.

    10.类的静态代码块只会执行一次,是在类被加载的时候执行的,因为每个类只会被加载一次,所以静态代码块也只会被执行一次;而构造方法则不然,每次生成一个对象的时候都会调用类的构造方法,所以new一次就会调用构造方法一次.

    11.如果继承体系中,既有构造方法,又有静态代码块,那么首先执行最顶层的类的静态代码块,一直执行到最底层类的静态代码块.然后再去执行最顶层类的构造方法,一直执行到最低层的构造方法,注意:静态代码块只执行一次.

    12.静态方法只能访问静态的属性,非静态的方法可以访问静态和非静态成员变量

    13:总结:静态的只能访问静态的;非静态的可以访问一切.

    不能在静态方法中使用this关键字.

    本博客内容所有权限保留,若需合作请与博主联系.博主邮箱:donaldjohn@qq.com
  • 相关阅读:
    Python基础-time and datetime
    Python基础-包
    Python基础-常用模块
    第四十七天Python学习记录
    第四十四天Python学习记录
    如何教你在NIPS会议上批量下载历年的pdf文档(另附04~14年NIPS论文下载链接)
    如何用pdfbox-app-1.8.10.jar批处理将pdf文档转换成text文档
    如何在Win10下设置图片的浏览方式为windows照片查看器
    如何不通过系统升级来安装window10正式版?(特别针对Xp用户)
    Mysql统计信息处理及binlog解释
  • 原文地址:https://www.cnblogs.com/donaldjohn/p/1966526.html
Copyright © 2011-2022 走看看