zoukankan      html  css  js  c++  java
  • J-9 面向对象

    JDK帮助文档
    代码块
    继承

    十四、JDK帮助文档

    使用方法:

    ①显示-索引-输入关键字
    ②明确要找的,例如Scanner类
    ③看包,java.lang包下的类不需要导入,其他的都需要导入。
    要导入:java.util.Scanner;
    ④再简单的看类的解释和说明,看该类的版本。
    ⑤看类的结构:
    成员变量 ---- 字段摘要
    构造方法 ---- 构造方法摘要
    成员方法 ---- 方法摘要
    ⑥学习构造方法
    有构造方法 ---- 创建对象
    无构造方法 ---- 成员都是静态的
    ⑦看成员方法
    左边 ---- 是否静态,返回值类型。
    右边 ---- 看方法名,看参数列表。

    十五、代码块

    在java中用{}括起来的代码称为代码块。
    根据其位置和声明的不同,可以分为:

    • 局部代码块:在局部位置,用于限定变量的生命周期。
    • 构造代码块:在类中的成员位置,每次调用构造方法都执行,并在构造方法之前执行。作用:可以将多个构造方法中相同的代码放在一起,对对象进行初始化。
    • 静态代码块:在类中的成员位置,用static修饰,只加载一次,并在构造方法、构造代码块之前执行。作用:对类进行初始化。
    • 同步代码块

    执行流程:

    静态代码块 > 构造代码块 > 构造方法

    十六、继承

    继承概述

    • 多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类(父类、基类)即可。

    • 格式:

        class 子类名 extends 父类名 {}
      
    • 好处:
      ①提高了代码的复用性
      ②提高了代码的维护性
      ③让类与类之间产生关系,是多态的前提。

    • 弊端:

      • 类的耦合性增强
        开发的原则:低耦合,高内聚。
        耦合 —— 类与类的关系
        内聚 —— 自己完成某件事的能力
    • 特点:
      ① 只支持单继承,不支持多继承(C++支持)
      ② 支持多层继承

    • 注意事项
      ① 子类只能继承父类所有非私有的成员(成员变量、成员方法)
      ② 子类不能继承父类的构造方法,但是可以通过super关键字去访问父类的构造方法。
      ③ 不要为了部分功能而去继承

    • 使用情况
      “is a”关系。
      类A是B的一种,或者B是A的一种。

    • 初始化
      分层初始化:父类先初始化,再子类初始化。

    类的组成部分各自的关系

    • 继承中成员变量的关系

      • 子类中的成员变量和父类中的成员变量名称不一样。
      • 子类中的成员变量和父类中的成员变量名称一样 ------> 就近原则
        在子类中访问一个变量的查找顺序:
        ①在子类方法的局部范围找,有就使用
        ②在子类方法的成员范围找,有就使用
        ③在父类的成员范围找,有就使用
    • 继承中构造方法的关系

      • 子类中所有的构造方法默认都会访问父类的空参数构造方法。

        • why: 因为子类会继承父类的数据,可能还会使用父类的数据。
        • 所以在子类初始化前,一定要完成对父类的初始化。
        • 注意:子类的每一个构造方法的第一条语句都默认为super( );
      • 如果父类没有无参构造方法,那么子类的构造方法会报错!

        • 通过super关键字去调用父类的带参构造方法。
        • 子类通过this关键字去调用本类的其他构造方法。子类中一定要有一个去访问了父类的构造方法,否则父类数据就没有初始化。
        • 注意:this(...)与super(...)的调用必须放在第一条语句,否则就会有父类数据的多次初始化。
    • 继承中成员方法的关系

      • 子类中的方法和父类中的方法声明不一样。
      • 子类中的方法和父类中的方法声明一样。
        通过子类对象调用方法:
        ①先找子类中,看有无此方法
        ②再看父类中,看有无此方法
        ③如果没有就报错。

    方法重写 override

    • 子类中,出现和父类中方法声明一模一样的方法。也称为方法覆盖、方法复写。

    • 使用特点
      如果方法名不同,有就调用相应的方法。
      如果方法名相同,最终使用的是子类自己的。

    • 应用
      当子类需要父类的功能,而功能主体子类有自己的内容时,可以重写父类中的方法。既沿袭了父类的功能,又定义了子类特有的内容。

    • 注意事项
      ① 父类中的私有方法不能被重写
      ② 子类重写父类方法是,访问权限不能更低,最好一致。
      ③ 父类静态方法,子类也必须通过静态方法进行重写(不算方法重写)

    • 方法重写与方法重载区别
      方法重写override:不能返回值。
      方法重载overload:能改变返回值。

    super关键字

    • this代表本类对应的引用。

    • super代表父类储存空间的标志,可以理解为父类引用。

      • 使用
        ①调用成员变量
        this.成员变量 调用本类的成员变量
        super.成员变量 调用父类的成员变量
        ②调用构造方法
        this(…) 调用本类的构造方法
        super(…)调用父类的构造方法
        ③调用成员方法
        this.成员方法 调用本类的成员方法
        super.成员方法 调用父类的成员方法
  • 相关阅读:
    linux command ubuntu
    C++ project
    windows command line
    vi command
    C++ Language
    postgresql backup
    C Language
    L1-046. 整除光棍(模拟除法)
    pta 拯救007(Floyd)
    CCF 201609-4 交通规划
  • 原文地址:https://www.cnblogs.com/android-lyz/p/4764085.html
Copyright © 2011-2022 走看看