什么是对象
我认为对象可以从两个层次来理解
1.对象是单个实物的抽象
一本书是一个对象,一辆车是一个对象,一个杯子也是一个对象,万物皆可为对象,将实物转化为对象后,实物之间的关系也就成了对象之间的关系,于是我们就可以面向“对象”来编程了
2.对象是一个容器,包含了他的属性和方法
所谓属性就是他的状态,这个人是女生,身高165,体重45kg,胸有36D,方法就是就是他的行为,她会吃饭,会跑步,会学习
面向对象的基本特征
有三个基本特征,封装,继承,多态,其实还可以多加一个抽象
封装和抽象
抽象就是把需要处理的数据和处理这些数据的操作结合在一起,根据功能,用途抽象成不同的数据类型,抽象数据类型都是用“类”这种结构来实现的,每个类中都封装了相关数据和相关操作
封装就是把对象作为一个密闭的容器,你不需要知道里面有什么,每个零件是干什么的,你只需要知道怎么用这个容器就行了
继承
继承是两个类之间的关系,一个类可以获得另一个类的方法和状态,被继承的类叫做父类(也称作基类),继承的类叫子类(也称作派生类)。通过使用继承,我们可以在不同的子类中多次重新使用父类的代码,而子类又可以提供一些父类中没有的特殊行为。
1.子类的构造过程中必须调用其基类的构造方法
2.子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法
3.如果子类的构造方法中没有显示的调用基类的构造方法,则系统默认调用基类的无参数构造方法
这里要多说一句,就是继承嘛,子继父类,子类能继承父类的所有东西,但是子类不能访问父类的private变量
多态
多态指的是程序中同名方法共存的情况,调用者只需使用同一个方法名,系统就会根据不同情况 调用相应的不同方法,实现不同功能。多态又被称为“一个名字,多个方法”
面向对象的五大原则
1.单一职责原则:一个类,最好只做一件事,只有一个引起它的变化
2.开放封闭原则:软件的功能应该是可扩展的,而尽可能的不修改。因为修改程序有可能会对原来的程序造成错误。不能修改,但是可以添加功能,尽可能的在外边添加新的类
3.Liskov替换原则:子类可以替换父类,但是父类不一定能替换子类
4.依赖倒置原则:接口或抽象类不依赖于实现类,实现类依赖于接口或抽象类
5.接口隔离原则:使用多个小的专门的接口,而不要使用一个大的总接口。就是每一个接口都执行一个专门的功能,用什么调什么