一、面向对象
1.1面向对象三大特性:封装、继承、多态
-
继承
People是父类,公共的,不仅仅服务于student
继承可将公共方法抽离出来,提高复用性,减少冗余
-
封装
针对属性的
public 完全开放
protected 对子类开放
private 对自己开放
特点:
减少耦合,不该外露的不外露
利于数据,接口的权限管理
ES6目前不支持, 一般认为_开头的属性是private
下面是用ts来演示。 其中name和age没有任何修饰符,这个意思是默认public
image.png image.png不能通过生成的实例获取girlfriend 因为它是私有的属性, 也不能直接访问weight, 因为它只可以在子类中访问
image.png image.png-
多态
定义了一个接口,在子类中实现不同的功能
同一个接口,不同表现
JS应用极少
需要结合java等语言的接口, 重写,重载等功能
保持子类的开放性和灵活性
面向接口编程
代码
image.png image.png1.2、面向对象应用举例
jQuery是一个class
$('p')是jquery的一个实例
1.3、为何使用面向对象?
程序执行:顺序,判断, 循环--结构化
面向对象—— 数据结构化
对于计算机, 结构化的才是最简单的
编程应该 简单&抽象
二、UML类图
全称:Unified Modeling Language 统一建模语言
画图工具:
- MS Office visio
- https://www.processon.com/
规则:
image.png下面是栗子:
image.png image.png image.png image.png继承用空间头,引用用实心箭头
网友评论