面向对象

问题1:面向对象是什么?
面向对象(Object Oriented, OO)是一种思想,是对现实世界的理解和抽象,用以解决现实问题。面向对象是对面向过程的一种自然演进,面向过程将解决问题的过程抽象成一个个的函数,逐个调用以解决问题。而面向对象是将问题抽象成一个个的实体(对象),每个实体有自己的方法和属性。
举例:
我要从北京到上海,如何完成上述的需求?
面向对象:
抽象出类:
Human(人),方法:chooseVehicle(),takeVehicle(),
Vehicle(交通工具)方法:move(start, end)
解决问题:
Human.chooseVehicle(start, end),
Human.buyTicket(Vehicle, start, end),
Vehicle.move(start, end),
面向过程:
chooseVehicle(),
buyTicket(),
takeVehicle(),
面向对象的三大基本特性
封装:封装指的是将一个对象的属性和方法放在同一个类里,封装的目标是为了“高内聚,低耦合”,封装隐藏了系统内部的实现细节,是保证软件系统优良的模块化的基础。
继承:如果A is B,那为达成代码的复用,就可以让A继承B,从而拥有B的属性和方法。
多态:多态分为编译期多态和运行期多态。编译期多态主要指方法的重载,运行期多态指的是程序中对象的具体类型需要在运行期才能确定(通过继承)

面向对象的五大基本原则
单一职责原则SRP(Single Responsibility Principle)
单一职责指的是一个类,不要承载太多的职责,不能包罗万象。否则会造成类的膨胀,以及难以维护。

开放封闭原则OCP(Open-Close Principle)
一个模块应该对扩展开放,而对修改关闭。遵循这个原则会给我们带来,更好的维护、扩展、复用、灵活性。

里氏替换原则LSP(the Liskov Substitution Principle)
子类应该要能替换父类并出现在父类出现的任何地方。

依赖倒置原则DIP(the Dependency inversionPrinciple)
抽象不应该依赖于细节,细节应该依赖于抽象。也即是我们要面向接口编程,而不是面向实现编程。

接口隔离原则ISP(the Interface Segregation Principle)
模块间应该使用接口隔离开,而不是用具体的实现类强耦合在一起。并且客户端不应该依赖于他不使用的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值