static、private、abstract、final

static

  1. 静态
    可以修饰成员变量和成员方法。
  2. 特点
    2.1 随着类的加载而加载
    2.2 优先于对象存在
    2.3 被类的所有对象共享
    2.4 可以通过类名调用
  3. 静态的注意事项
    3.1 在静态方法中没有this对象(静态只能访问静态)
  4. 静态变量和成员变量的区别
    4.1 所属不同
       静态变量:属于类,类变量
       成员变量:属于对象,对象变量,实例变量
    4.2 内存位置不同
       静态变量:方法区的静态区
       成员变量:堆内存
    4.3 生命周期不同
       静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
       成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
    4.4 调用不同
       静态变量:可以通过对象名调用,也可以通过类名调用
       成员变量:只能通过对象名调用

final

  1. 修饰
    可以修饰类,方法,变量。
  2. 特点
    2.1 它修饰的类,不能被继承。
    2.2 它修饰的方法,不能被重写。
    2.3 它修饰的变量,是一个常量。
    2.4 基本类型值不能发生改变
    2.5 引用类型地址值不能发生改变,但是对象的内容是可以改变的
    2.6 只能初始化一次。

private

  1. 私有
    可以修饰成员变量和成员方法
  2. 特点
    被private修饰的后的成员只能在本类中被访问
  3. 应用
    写一个类的时候,用private修饰了成员变量,那就给对应变量提供赋值和返回的方法

abstract

  1. 可以修饰类或方法
  2. 类可以扩展(增加子类),但不能直接实例化。
  3. abstract 方法不在声明它的类中实现,但必须在某个子类中重写
  4. 采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract
  5. 仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abstract 类的子类。这种类称为具体类,以区别于 abstract 类 。
  6. 如果 abstract 类的子类没有实现其超类的所有 abstract 方法,该子类也是 abstract 类。
  7. abstract 关键字不能应用于 static、private 或 final 方法,因为这些方法不能被重写,因此,不能在子类中实现。
  8. final 类的方法都不能是 abstract,因为 final 类不能有子类。

猜你喜欢

转载自blog.csdn.net/codefarmer__/article/details/80550013