逻辑串说面向对象知识点

学面向对象也有一段时间了,再次回顾,整理所得,写成这篇,知识点只是大致说,细节每本关于面向对象的书都有,就不啰嗦占用时间和篇幅了.

一  面向对象编程的由来:

  和面向对象编程相对应的是面向过程编程
    

    面向过程编程:就像造发动机一样,需要一步一步制造汽缸,活塞,喷油嘴等等,有先后顺序

    面向对象编程:没有先后顺序,将发动机的所有组件全部制造出来,放在一个仓库中.这个仓库就叫函数库.然后将所有组件组装成一个发动机.

    但是软件的包很不好管理,上世纪70年代,美国海军部提出面向对象编程.将汽缸看做是一个对象,把汽缸的所有属性和功能全部封装到一个文件当中,调用方法,更改属性,都可以

调用这个封装好的文件.这样就最大程度上实现编程的模块化.

    软件没有实际物质,当函数库中的函数写出来以后,就不需要再重写,只需要调用就可以.所以软件开发只需要前期编辑成本,开发完成后就是零成本,这也是360免费,软件行业免

费趋势的原因.

二  模块化的目的:为了代码复用.

   代码复用的方式:组合和继承

    相对于继承,更多的用到组合.实例化和调用是组合最常用到的方式.能用组合尽量用组合.

    继承一般情况下是方法的功能不够强大,需要对方法进行覆写.所以尽量做到不覆写不继承.

    覆写需要遵守的规范:

    两个类必须有继承关系;

    不能有更小的权限;

    不能有更宽泛的异常;

    方法名,返回值,形参要一致;

    私有方法不能被覆写,即使覆写也会访问父类的;

    构造方法不能被继承,不能被覆写;

    静态方法不能被覆写;

    覆写是特指成员方法的覆写,和成员变量,静态变量,静态方法无关.
  

这其中就涉及了对象的封装:其权限依次减小:public protected default private

三  覆写的目的是增强父类方法的功能.方法的覆写和重复,重载的区别:

  重复:只要是方法名相同,参数列表相同,方法就是重复

  覆写:权限修饰符可以更大,方法名相同,参数列表相同

  重载:和覆写基本上没有关系,和继承也没有关系,权限修饰符相同,方法名相同,参数列表不同

 所以,方法最终的唯一识别方式就是方法名和参数列表.

 说到继承,必须要提的一个原则:

  里氏替换原则:能用父类的地方肯定能用子类.这就是通常所说的多态.

 变量声明的三个步骤:用类名声明数据类型开辟空间,给空间命名,把值放入空间.多态发生在赋值的地方.

 所以多态有四种形式:哪里用到变量,哪里就可以多态.

    直接实例化

  成员方法多态

   构造方法多态

   成员变量多态

多态包含两种方式:向上转型和向下转型(用instanceof判断),主要应用在集合中.

和其相似结构的是内部类.

数据类型是一个类.所以数据类型出现的地方都可以替换成内部类.

只有在声明变量的时候用到数据类型,所以有

成员内部类----成员变量

静态内部类----静态变量

局部内部类----局部变量

匿名内部类----形参变量

下面附上几张大致的知识点框架图,仅供参考

                              
                       

时间: 2024-10-14 10:52:33

逻辑串说面向对象知识点的相关文章

面向对象知识点回顾整理

目录 面向对象知识点回顾整理 一.面向对象基础 1.类和对象 2.属性查找: 3.绑定方法: 4.对象之间的交互: 5.类的内置属性 6.三大特性:继承.多态.封装 二.面向对象高阶 元类 单例模式 面向对象知识点回顾整理 一.面向对象基础 面向对象编程的核心是对象二字,对象是属性与方法的结合体,python中一切皆对象. 优点:可扩展性强 缺点:编程的复杂度高 1.类和对象 对象:属性和方法的结合体 类:一堆属性和方法的结合体 python中是先有类再有对象,现实生活中是先有对象再有类 类名(

C++ 面向对象 知识点 小结

[摘要] 面向对象主要的知识点有,面向对象的基本概念,结构和类的区分,多态及各种构造函数.要求掌握 1.面向对象的基本原则(封装.继承.多态),面向对象的基本概念(类.对象.继承).2.类和结构体在访问控制上的差异.3.成员变量在静态成员变量的4个特性.引用成员变量必须采用的初始化方式.静态常量成员变量的初始化特点以及成员变量在初始化列表初始化顺序上的特点. 4. string与stack的四个初始化函数的书写. 5. 友元函数的尺度以及实现. 6.异常的2个例题要求熟练掌握. 7. 深拷贝与浅

面向对象知识点梳理篇一

0. OOP-Python面向对象 Python的面向对象 面向对象编程 基础 公有私有 继承 组合,Mixin 魔法函数 魔法函数概述 构造类魔法函数 运算类魔法函数 1. 面向对象概述(ObjectOriented,OO) OOP思想 接触到任意一个任务,首先想到的是任务这个世界的构成,是由模型构成的 几个名词 OO:面向对象 OOA:面向对象的分析 OOD:面向对象的设计 OOI:xxx的实现 OOP:xxx的编程 OOA->OOD->OOI: 面向对象的实现过程 类和对象的概念 类:抽

python面向对象知识点疏理

面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写. 实例变量:定义在方法中的变量,只作用于当前实例的类. 继承:即一个派生类(de

面向对象知识点

/*目前存在的问题: 1. 无法描述清楚这两个类之间的继承关系. 2. 存在着重复代码. 面向对象的三大特征: 1. 封装 2. 继承 3. 多态. 继承:继承是通过关键字extends体现的. 继承的格式: class 类名1 extends 类名2{ } 继承要注意的事项: 1. 千万不要为了减少重复代码而去继承,只有真正存在着继承关系的时候才去继承. 2. 父类私有的成员不能被继承. 3. 父类的构造函数不能被继承. 4. 创建子类对象时默认会先调用父类无参的构造函数. *//*疑问: 为

php 面向对象知识点

面向对象知识: 1 你对面向对象的认识 面向对象(OO)出现在20世纪70年代,面向对象是认识事物的一种方式,用的是类比模式. 2 什么是类?什么是对象?类和对象之间的关系? (类是具有相同属性和服务的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分. 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位) 类是抽象(外观=>属性.做的事=>行为)的,对象(实体)是具体的,对象是对类的实例化 3 面向对象的3大特征 封装.继承.多态.

Java面向对象知识点

对象:一切客观存在的事物都是对象 语法部分: 类的概念:1.类是对象的抽象 2.类是客观事物在人脑中的主观反应 3.类是对象的模板 类的设计: 属性:定义位置:类以内,方法以外 实例变量:1 有默认值, 2 至少在本类的内部有效, 3 可以和局部变量重复命名,局部变量优先 方法:功能 去掉static 声明部分:修饰符 返回值类型 方法名称 参数表 异常 实现部分 {}方法 构造方法:特殊方法 a.构造方法必须和类名相同 b.没有返回值类型组成部分,修饰符 方法名称 参数表 异常 c.不能手动调

面向对象知识点续及单例模式

1.命名空间 命名空间的作用是避免了项目越来越大出现的命名冲突和混乱的问题 命名空间一般与文件的目录相对应,第一个命名空间前面不能有任何代码 在不同空间之间不可以直接调用其它元素,需要使用命名空间的语法: <?php namespace Article; class Comment { } namespace MessageBoard; class Comment { } //调用当前空间(MessageBoard)的Comment类 $comment = new Comment(); //调用

python全栈开发 * 18 面向对象知识点汇总 * 180530

18 面向对象初识1class person: level="高级动物" mind="有思想" def __init__(self,name,age,gent,area,hobby): self.name=name self.age=age self.gent=gent self.area=area self.hobby=hobby print("__init__") pass def walk(self): pass def eat(self)