OOP三大特性:封装、继承、多态;这里只讲述在javascript中如何进行继承(限es5)。 继承只是是代码重用的一种手段,那么在js中如何实现继承呢?
(1). 封装:将一些行为以类为单位进行包裹起来,然后通过类进行调用(如People类),可以利用private、public、protected灵活控制属性的可访问性。
面向对象的编程(OOP)方法是在面向过程的编程方法基础上进行的改进,而面向方面编程(AOP)方法又是在面向对象编程(OOP)方法的基础上进行改进而来的一种创新的软件开发方法。 1.面向领域不同 AOP和OOP虽然在字面上十分相似,但是却是面向不同领域的两种设计思想。 2.AOP是OOP的补充 AOP 与 OOP 并不是相互竞争的两种技术, 人们不是为了代替OOP 而提出 AOP, 事实上 AOP 与 OOP 两者互相之间是一个很好的补充和完善。 OOP面向对象编程关注的是将需求功能“ 垂直” 划分为不同的并且相对独立, 封装良好的类, 并让它们有着属于自己的行为。 至于对象间的关系则依靠继承和多态等来定义,即OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。
有c#基础的程序员,学习java其实很容易上手,绝大多数语法基本相同,概念也接近 1、属性 java中没有象c#中的Property概念,只有set,get方法 package jmyang.oop; _name = value; } } 2、继承 extends package jmyang.oop; public class Dog extends Animal { public ; } } 3、接口 package jmyang.oop; public interface IRun { //注:final关键字,可省略 final int speed = 1; //注:abstract关键字,可省略 abstract void Run(); } 实现接口必须在定义类时,使用implements关键字 package jmyang.oop 中要表示常量 ,只要在定义变量时,加一个final关键字即可,表示该变量不可再被修改,这类似于c#中的const关键字(java中其实也有const关键字,但是目前尚未启用,仅作为保留关键字) 7、重大差异 OOP
oop思想
是为了处理间接变量的引用,因为 shell 没法嵌套使用变量,比如:${${a}} 是不行的
(1)、单一职责原则(Single Responsibility Principle)
OOP-Python面向对象 Python面向对象 面向对象编程 基础 公有私有 继承 组合,Mixin 魔法函数 魔法函数概述 构造类魔法函数 运算类魔法函数 1. 面向对象概述(ObjectOriented, OO) OOP思想 接触到任意一个任务,首先想到的是任务这个世界的构成,是由模型构成的 几个名词 OO:面向对象 OOA:面向对象的分析 OOD:面向对象的设计 OOI:面向对象的实现 OOP:面向对象的编程 OOA->OOD->OOI:面向对象的实现过程 类和对象的概念 类:抽象名词,代表一个集合,共性的事物 对象:具象的东西,单个个体 类跟对象的关系 一个具象
定义:隐藏类的内部实现细节,只对外暴露 “访问接口”(通过 getter/setter 方法),保护数据安全。
这节讲一下,什么是面向对象(Object Oriented Programming)。说面向对象之前,我们不得不提的是面向过程(Process Oriented Programming),C语言就是面向过程的语言,这两者的区别在哪呢?我们可以设想一个情景——厨房做菜:
8. 类的成员描述符(属性) 类的成员描述是为了在类中对类的成员属性进行相关操作而创建的一种方式 get:获取属性的操作 set:修改或添加属性操作 delete:删除属性的操作 如果想使用类的额成员描述符,大概有三种方法 使用类实现描述器 使用属性修饰符 使用property函数 property函数很简单 property(fget, fset, fdel, doc) 无论哪种修饰符都是为了对成员属性进行相应的控制 类的方式:适用多个类中的多个属性共用同一个描述符 property:适用当前类中使用,可
为玩具厂创建一个玩具熊类。 玩具熊有名字、尺寸、颜色这些数据属性;还有唱歌、说话的行为。
python的OOP机制 在Python中,实际上一切都是对象,我们使用的内置数据类型,本质上也是类的实例化。 除此之外,python的OOP模型基本就是处理内置类型的函数。 OOP不仅是一门技术,更是一种经验。 因为OOP不是在所有场景下都优于POP(Procedure-Oriented Programmin) python是一门一致性非常好的语言,大多数使用OOP的方式,都可以统一表达为: object.attribute 因此通过搜索将I2.w解析为C3.w,用OOP的术语来讲就是“I2从C3继承了属性w”。 OOP是关于代码重用 类所支持的代码重用方式是python中其它方式难以提供的,事实上,代码重用也是OOP最重要的目的。通过类,我们可以定制现有的代码来实现需求。
6.3 多态 多态就是同一个对象在不同情况下有不同的状态出现 多态不是语法,是一种设计思想 多态性:一种调用方式,不同的执行效果 多态:同一事物的多种形态,动物分为人类、猪类、狗类 多态和多态性 Mixin设计模式 主要采用多继承方式对类的功能进行扩展 Mixin概念 MRO and Mixin Mixin模式 Mixin MRO MRO 我们使用多继承语法来实现Mixin 使用Mixin实现多继承的时候非常小心 首先他必须表示某一单一功能,而不是某个物品 职责必须单一,如果有多个功能,则写多个Mixin
如果两个类有很多相同之处,使用继承更为合理。 新品玩具熊增加了一个跑的行为,其他与原来的玩具熊一致。
Java OOP编程 一、封装 二、继承 (1)子类继承父类 (2)方法的重写 (3)抽象类 三、接口(补充) 四、多态 (1)概念 (2)多态的前提与体现 我们知道 OOP的三大特性分别是封装,继承
Java面向对象 OOP Object Oriented Programming 要解决的问题 单独的变量解决,不利于数据的管理,把某个对象的信息拆解了,例如:存储一只猫的名字,年龄var等信息 类是对象的模板,对象是类的一个个体,对应一个实例 从类到对象的不同说法 创建一个对象 实例化一个对象 把类实例化 总之:类实例化 -> 对象 面向对象快速入门 使用OOP
可以使用 [父类名.父类成员] 的格式来调用父类成员,也可以使用[super().父类成员]的
12. 所用软件 画图软件:Faststone capture 13. 抽象类 抽象方法:没有具体实现内容的方法称为抽象方法 抽象方法的主要意义是规范了子类的行为和接口 抽象的使用需要借助abc模块 import abc 抽象类:包含抽象方法的类叫做抽象类,通常成为ABC类 抽象类的使用 抽象类可以包含抽象方法,也可以包含具体方法 抽象类中可以有方法也可以有属性 抽象类不允许直接实例化 必须继承才可以使用,且继承的子类必须实现所有继承来的抽象方法 假定子类没有实现所有继承的抽象方法,子类也不能实例化
三十年弹指一挥间,但是仍旧有很多 foxer 对 OOP(面向对象) 这个概念懵懵懂懂。 OOP 是 VFP 中一个非常重要的概念。核心概念就是类和对象。而这些,在 VFP 中是天然存在的。 假设你完全不懂什么是 OOP,但是仍旧可以使用 VFP 编写可运行的应用程序。 因此,我才会强调,如果理解了 VFP 的 OOP,X# 的学习几乎无明显的学习曲线。 但是,仅仅掌握这些技术就足够了吗? 实质上,OOP 重要的不是技术,而是思想。 因此,OOP 重要的是设计思维,而不是代码实现。这也是有些 foxer 写了 N 年代码,水平一直没有提高的根本原因之一。 OOP 设计思维的建立,不仅仅能更好的应用 VFP ,而且,对于现代绝大多数各种编程语言的学习,也是很好的基础。