zoukankan      html  css  js  c++  java
  • Java关键字总结

    一、final

    final修饰类,类不可被继承。

    The type FinalB cannot subclass the final class FinalA

    译:FinalB类型不能将最终类FinalA子类化

    final修饰变量,变量必须被初始化,且初始化后,变量不可被修改。

    从下面的例子可以得知即使是基本类型,也需要初始化。

    The blank final field c may not have been initialized

    空白的最终字段c可能尚未初始化

    The final field FinalC.c cannot be assigned

    无法分配最终字段FinalC.c

    final修饰方法,类被继承后方法不可重写。

    Cannot override the final method from FinalD

    译:无法覆盖FinlanD的最终方法

    final还可在方法中作为局部变量使用,可在参数中修饰,也可在方法体中修饰

     final的错误使用

     final的正确使用

    在方法中,final修饰的局部变量作为参数传递进入另一个方法体,是可修改的,两者作用域不一样。

    在方法(非构造方法)中,没有显示调用super.sex()无法进入父类中同样的方法,这是重写。

    二、static

    static不能修饰类,修饰类的只有public、abstract和final

    Illegal modifier for the class A; only public, abstract & final are permitted

    (对于类对象)类A的非法修饰符; 只允许public,abstract和final

    static修饰变量,该变量可在static初始静态块中初始化变量。

    static初始化静态块不能初始化非静态变量。不能通过类对象直接调用非静态变量

    Cannot make a static reference to the non-static field age

    (在静态初始块中初始化非静态对象或直接使用类对象(非对象实例)调用非静态方法)无法对非静态字段age进行静态引用

    在方法内部,static不能修饰局部变量,局部变量只能使用final修饰。

    Illegal modifier for parameter num; only final is permitted

    (方法内部)参数num的修饰符非法; 只有final是被允许的 

    类对象无法直接调用非静态方法

    Cannot make a static reference to the non-static method print() from the type A 

    无法对类型A的非静态方法print()进行静态引用

    当类中没有定义构造方法,系统会为类提供一个默认的无参构造方法,无参构造方法会调用super();

    无论是显示调用还是隐式调用或者自定义构造方法,系统都会默认在进入构造方法之初调用super(),初始化父类的静态块。

    根据结果可得知,当继承一个带有静态初始块对象时,会先执行父类的静态初始块。

    在未产生对象之前,构造方法不会初始化。

  • 相关阅读:
    自动化系列-pyppeteer安装
    用python做一个可视化生成二维码的工具
    Python第三方包之DingDingBot
    封装属于自己的Python包
    sqlldr使用
    MS MQ 消息队列
    PDF打印
    oracle 存储过程编辑 卡死
    winrar 压缩文件方法
    数值 转换 成 带千位符的数值,且转成大写
  • 原文地址:https://www.cnblogs.com/feiyang930112/p/11301517.html
Copyright © 2011-2022 走看看