zoukankan      html  css  js  c++  java
  • 抽象数据类型(ADT)和面向对象编程(OOP)3.4 面向对象的编程

    一个对象是一组状态和行为     

    状态 : 包含在对象中的数据。 - 在Java中,这些是对象的字段(字段)

    行为 : 对象支持的行为    -  在Java中,这些被称为方法      - 方法只是面向对象的函数     - 调用方法=调用函数

    每个对象都有一个类     - 一个类定义方法和字段 - 方法和字段统称为成员 

    类定义了类型和实现

           - 类型≈在哪里可以使用对象

           - 实现≈对象如何处理事物

    类变量(Java中的静态变量):与类关联的变量,而不是类的实例。 还可以将方法与类关联  classmethods(Java中的静态方法)
    要引用类变量和方法,需要将类的名称和类方法或类变量的名称连同句点('.')一起加入。
    不是类方法或类变量的方法和变量称为实例方法和实例变量,要引用实例方法和变量,必须引用类实例中的方法和变量。
    类变量和类方法与类相关联,并且每个类都会出现一次。 使用它们不需要创建对象。 实例方法和变量在类的每个实例中出现一次。

    静态方法不与任何特定的类实例关联,而实例方法(不带static关键字声明)必须在特定对象上调用。在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

    静态变量属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。

    接口(interface)

    实现方式是实现该接口的类。

    为所有接口的方法提供方法体,则该类将实现一个接口

    一个接口可以扩展其他接口

    一个类可以实现多个接口

    在Java中,API由接口或类指定多个类可以实现相同的API,接口只提供一个API接口定义但不实现APIclass提供了一个API和一个实现

    破坏了通过抽象建立的屏障,Java中的接口不能包含构造函数,所以它们必须直接调用其中一个具体类的构造函数

    这样可以接口构造,必须用static,不能构造函数

    多种实现的目的:不同的性能,不同的行为,不同的性能和行为(HashSet  TreeSet)

    成员的可见性修饰符

    private-只能从声明类访问
    proteced - 可以从声明类的子类(以及包内)
    public - 从任何地方访问

    继承和重写

    严格继承:子类只能添加新方法,无法重写,有final的方法就不能重写

    子类中可以通过super关键字调用父类中被重写的方 法

    类前加final,不能被继承   @Override         

    多态性,子类型和重载

     特殊多态重载:同样的方法名,但是参数,返回值类型可能不同,对调用者有好处,因为代码承担了应对不同参数类型的负担,而不是在调用方法前强制调用方转换

    重载是一种静态多态    函数根据参数列表解析   静态类型检查    在编译前时确定使用哪个方法 ,重写是在runtime时进行动态检查

    函数重载规则:重载函数必须根据参数数量或数据类型而有所不同,参数列表必须有变化

     参数多态性和泛型编程

     允许在没有完全指定类型的情况下进行静态类型检查

    泛型类声明,泛型接口声明,泛型方法声明和泛型构造函数声明

    <>来帮助声明类型变量

    ①泛型接口,泛型实现类

    ②泛型接口,非泛型实现类

     泛型不能用instanceof()看数据类型

    子类型多态

    编译器会检查,确保接口中的所有方法在实现类 中均被实现

    规格说明的强弱,编译器无法判断

     避免向下类型转换

    接口继承接口

  • 相关阅读:
    struts1与struts2的防止表单重复提交
    JSTL 笔记
    fiddler的columns添加HTTPMethod
    兼容性测试技巧
    测试基础知识总结
    测试用例的书写方式及测试模板大全【转】
    软件测试的方法分类
    解决vue不支持promise语法问题
    vue-router 导航守卫
    e.target与事件委托简例【转】
  • 原文地址:https://www.cnblogs.com/xgl122/p/9217549.html
Copyright © 2011-2022 走看看