• Java面向对象的基本特征二


    一、封装

      1. 概念:就是使类中的成员变量都是private,但是又提供public方法访问这些成员变量。这样就实现了隐藏类中的成员变量,从而确保了数据的安全性;

      2. 实例:     

          private String name;

          public String getName() {      用于读取变量数据

            return name;

          }

          public void setName(String name) {   用于设置变量数据

            this.name = name;

          }

      注意:命名这些方法时,使用 get 和 set 加上变量名(变量名首字母要大写);

    二、多态

      1. 分类:

          ①  静态多态:实现的方式是方法的重载;

          ②  动态多态:实现方式是重写父类的方法;

      注意:我们说的多态,一般就指的是动态多态。

      2. 引用数据的转型(语法与基本数据转型一样):

          ①  向上转型:从子类向父类转,可自动实现;

          ②  向下转型:从父类向子类转,需强制转换;

      3. instantof 关键字:

          用于判断 instantof 前面的对象是否是 instantof 后面的对象的实例。(是返回 true ,不是返回 false)

      

    三、抽象

      1. 关键字:abstract

      2. 抽象类:

          abstract 声明的抽象类,不能被实例化。所以需要要有子类才能体现其作用。

      3. 抽象方法:

          abstract 声明的抽象放法,没有方法主体,只能出现抽象类中,并且在子类中要被实现才可以(抽象子类可以不用实现)。

    四、接口

      1.概念:就是一种更为特殊的抽象。在接口中的所有方法都是抽象方法,所有的方法都不提供具体的实现。需要其他的类来实现其中所有定义的方法。

      2.接口与类异同:

        同:

          ① 可以有任意数量的方法;

          ② 保存为以".java "为后缀名的文件,接口名必须与文件名保持一致;

          ③ 编译后的文件是后缀名为“.class”的文件;

          ④ 在包中的接口,其相应的字节码文件必须放置在和包名相匹配的一个目录中;

        异:

          ① 接口不能被实例化;

          ② 接口不包含任何构造器;

          ③ 接口中的所有方法都是抽象的;

          ④ 接口中不能包含实例化的成员变量。唯一可以出现在接口中的成员变量必须是同时声明为static和final(公有静态常量);

          ⑤ 接口不能被一个类继承,只能被一个类实现;

          ⑥ 一个接口能够继承多个接口;

      3. 接口的声明:

        语法:     

          public interface 接口名 {
            // 任意数量的final,static成员变量
            // 任意数量的抽象方法声明
          }

        性质:

          ① 接口默认就是抽象的。所以在声明时,不需要使用关键字 abstract;

          ② 接口中的每一个方法都是抽象的。所以在声明时,也不需要使用关键字 abstract;

          ③ 接口中的方法一般都是使用 public ,所以 public 也可以省略;

      4. 接口的实现:

        关键字:implements;

        语法:

          public  class  类名  [extends  父类名]  implements   接口名 {}

          注意:可以一次实现多个接口,有多个接口名时由逗号隔开,实现接口的类(抽象类除外)必须实现接口中的所有方法;

  • 相关阅读:
    [CSP-S模拟测试]:迷宫(最短路)
    [CSP-S模拟测试]:五子棋(模拟)
    [CSP-S模拟测试]:点亮(状压DP+树上背包DP)
    [CSP-S模拟测试]:统计(树状数组+乱搞)
    [CSP-S模拟测试]:组合(欧拉路)
    [CSP-S模拟测试]:笨小猴(随机化)
    最小表示法
    BZOJ4868 [Shoi2017]期末考试 【三分 + 贪心】
    BZOJ4870 [Shoi2017]组合数问题 【组合数 + 矩乘】
    BZOJ4919 [Lydsy1706月赛]大根堆 【dp + 启发式合并】
  • 原文地址:https://www.cnblogs.com/renchang/p/4419698.html
Copyright © 2020-2023  润新知