面向对象-主线三:关键字

关键字

this的使用

  1. 它在方法内部使用是指方法所属对象的引用
  2. 他在构造器中使用是指构造器正在初始化的对象
  3. this() 调用构造器

    super

  4. super可以理解为父类

  5. super可以调用父类的属性、方法、构造器

    package

  6. 为了更好的进行类的管理

  7. 每’.’一次都代表一层文件目录
  8. 定义在源文件的首行
  9. 包内不能定义同名的类,不同包可以
  10. 包名属于标识符要遵循标识符的命名规则和规范
  11. jdk中主要包的介绍

    1. java.lang—-java的核心类包括Integer、System、Math等
    2. java.net—-跟网络编程相关的的类和接口
    3. java.io—-提供输入输出相关的类
    4. java.util—-java工具类,集合框架和和日历相关的函数等
    5. java.text—-包含java格式化相关的类
    6. java.sql—-进行jdbc操作的类
    7. java.awt—-构建桌面窗口工具集

      import

  12. 在源文件中显式的使用import导入指定包下的类或者接口。

  13. 在包的声明和类的声明之间声明
  14. 多个import并列
  15. 可以用xxx.* 导入包下的所有类
  16. java.lang下的类不用import
  17. import static 可以导入类中的静态结构

    instanceof

  18. X instanceof A :检验X是否是类A的对象或父类的对象,返回boolean

    static 静态的

  19. static可以修饰属性、方法、代码块、内部类

    1. 属性:静态变量(类变量),static修饰为静态属性,无static非静态属性(实例属性),静态属性是共有的,非静态属性每个都拥有一份。
      1. 静态变量随着类加载而加载,可以使用类.属性来调用
      2. 静态变量的加载要早于对象的创建
      3. 静态变量只在内存中存一份,存在方法区的静态域中
    2. 方法:被static修饰的为静态方法
      1. 随着类加载而加载,可以通过类.方法调用
      2. 静态方法中只能调用静态的方法或属性
      3. 非静态可以调用非静态的方法和属性
      4. 静态方法不能使用this()或者super

        final 最终的

  20. 可以修饰的结构:类、方法、变量

    1. 修饰类:不能被继承
    2. 修饰成员变量:此时变量为一个常量,不能被修改,可以赋值的地方:显示初始化、代码块、构造器
    3. 修饰局部变量:不能被修改
    4. 修饰方法:不能被重写

      abstract(抽象的)

  21. 可以用来修饰的结构:类、方法

  22. abstract修饰类:抽象类
    1. 此类不能实例化
    2. 抽象类一定有构造器,便于子类实例化时调用
  23. abstract修饰方法:抽象方法

    1. 抽象方法没有方法体
    2. 有抽象方法的类一定是抽象类
    3. 子类需要实现父类的抽象方法,子类不重写则也为抽象类
    4. 不能修饰私有方法、静态方法、fianl的方法或类

      interface (接口)

  24. 接口使用interface来定义

  25. java中接口和类是并列的结构
  26. 如何定义接口,定义接口的成员
    1. jdk7以前:只能够定义全局常量public static final(书写的时候可以省略) 和抽象方法 public abstract(书写的时候可以省略)
    2. jdk8之后:增加了定义静态方法、默认方法
      1. jdk7以前:只能够定义全局常量public static final(书写的时候可以省略) 和抽象方法 public abstract(书写的时候可以省略)
      2. jdk8之后:增加静态方法和默认方法
        静态方法:piblic static void method(){} 接口自己才能调用
        默认方法:public default void method(){} 实现类的实例可以调用,可以被重写。
        子类或实现类继承的父类和实现的接口中有同名同参数的方法,子类在没有重写该方法的情况下,调用的是父类的方法。指定调父类super.method(),指定调接口中的默认方法interfaceName.super.method()
        接口冲突:实现类实现的多个接口中不能有同名同参数的默认方法(没有重写的情况下)
        (子类或其实例可以调用父类的静态变量和静态方法。实现类和其实例可以调用接口的静态变量,但是不能调用新特性中的静态方法,子类的实例可以调用默认方法)
  27. 接口中不能有构造器,接口不可以实例化
  28. java开发中,接口通过让类实现(implements)来使用,如果实现类覆盖了接口中的所有抽象方法,该类可以实例化。如果没有覆盖完,则此实现类仍然是一个抽象类。
  29. java可以实现多个接口—-弥补了java单继承的局限性。格式:class A extends B implements C,D
  30. 接口和接口之间可以继承,而且可以多继承 interface AA entends BB,CC
  31. 接口的具体使用,体现多态性
  32. 接口实际上可以看成一种规范