• J2SE7规范_2013.2_类


    8.1 类的定义

    包括普通类和枚举类,枚举(略)

    下面都是指普通类:

    public只能用于外部类,成员类,不能用于局部类,匿名类

    protected和private用于成员类时(待解)

    static只能用于成员类,不能用于外部类,局部类,匿名类

    abstract类可以有abstract方法

    abstract类不能实例化

    abstract类一定要保证子类能够实现其中的abstract方法

    如果是为了不想被实例化,应该让构造成为private,通常含有static字段或方法

    final类不能被继承,其中的方法无法被覆盖

    final和abstract显然不能共存

    strictfp类,表示其中的所有实型变量和表达式都是FP-strict

    泛型类(略)

    除了外部类和静态成员类,其他都叫内部类,包括成员内部类,局部内部类,匿名内部类

    不能有static初始块,不能有成员接口

    不能定义static成员,除非是final字段

    但可以继承static成员

    一个内部类的实例总是依赖于一个外部类实例

    内部类外面定义的局部变量,形参,异常变量,必须定义为final

    内部类外面定义的局部变量在内部类里面使用前必须初始化

    静态成员类和静态局部类

    可以有static初始块,可以定义static成员,可以有成员接口

    成员接口总是static的 (内部接口的一种)

    8.2 类的成员

    构造方法,静态或非静态的初始化块,并非类的成员,所以不会被继承

    8.3 类的字段

    父类的private字段有可能被子类访问到,比如他们都在一个外部类里

    但肯定不会继承给子类的

    有可能从多个途径多次继承了同一个接口里定义的字段,没有关系,那只是常量,而且可以直接访问,或者用接口名访问

    但两个父接口里的同名字段是不能被子类访问的,即使类型和值都相同也会编译报错

    static字段就是类变量,非static就是实例变量

    类变量初始化不能调用this和super,因为没有实例对象

    未赋值的final static字段必须在static初始化块里初始化

    未赋值的final 非static字段必须在构造方法结束前初始化

    transient字段在持久化存储时不会被存储,比如序列化时

    volatile字段在多线程中共享访问时总是读取最新值

    volatile不能跟final共存

    8.4 类的方法

    abstract方法不能再声明为  private,  static,  final,  native,strictfp,  synchronized
    native跟strictfp不能共存

    abstract方法可以覆盖非abstract方法

    无法用super调用abstract父类,因为父类无法实例化,但可以调用继承来的方法

    final类的方法和声明为private的方法默认为final

    native方法是说本方法不是平台无关的,里面有本地代码,直接加分号,没有方法体

     除了abstract和native,方法必须有方法体{....}

     声明了返回类型,不一定必须有return,可能通过异常等方式跳出方法

    在覆盖或者实现方法的过程中无需考虑strictfp修饰符

    8.8构造方法

    构造不能是abstract, static, final, native, strictfp,synchronized

    class Outer { 
    class Inner {} 
    } 
    class ChildOfInner extends Outer.Inner { 
    ChildOfInner() { (new Outer()).super(); } 
    }

      

  • 相关阅读:
    记录一个Heisenbug!
    MATLAB(一):矩阵基本操作
    MATLAB基础(三):MATLAB基本运算与字符串处理
    MATLAB基础(二):变量与矩阵
    MATLAB基础(一):简介及数值数据特点与常用数学函数
    用位运算实现四则运算
    指针:C语言二级指针与二维数组
    单片机基础(八):单片机串行口结构与工作方式及应用
    单片机基础(七):串行通信概念及其工作原理
    单片机基础(六):单片机定时/控制器的控制接口
  • 原文地址:https://www.cnblogs.com/gcg0036/p/4143607.html
Copyright © 2020-2023  润新知