首先了解下类和对象
类是具有属性和方法的一组对象的集合, 对象是实际存在的该类事物的个体
类可以看做是一个模板,或者图纸,系统根据类的定义来造出对象。
类:class
对象:object, instance(实例)
面向过程和面向对象都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。
面向过程
一种以事件为中心的编程思想,就是分析出解决问题所需的步骤,然后用函数把这些步骤实现,并按顺序调用
面向过程思考问题时,我们首先思考“怎么按步骤实现?”
面向过程适合简单、不需要协作的事务。
面向对象
面向对象是一种思想,是基于面向过程而言的,面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象实现具体的调节。
优点:数据作为第一位,可维护性好。
可维护性:
- 可理解性
- 可测试性
- 可修改性
面向对象的特性:
1.封装:隐藏了对象的属性和实现的细节,仅对外提供公共的访问方
2.继承:两种事物之间存在一定的所属关系, 那么继承的类可以从被继承的类中获得一些属性和方法,提高了代码的复用性
3.多态:指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
优点:父类或接口的引用指向了子类对象,提高了程序的扩展性,只要实现或继承了 同一接口或者类,那么就可以使用父类中相应的方法,提高程序扩展性
缺点:父类引用不能访问子类的成员
封装的具体优点:
- 提高代码的安全性
- 提高代码的复用性
- 高内聚:封装细节,便于修改内部代码,提高可维护性
- 低耦合:简化外部调用,便于调用者使用,便于扩展和协作
继承使用要点:
- 父类也称做超类、基类、派生类
- java中只有单继承,没有多继承,多继承会引起混乱,使得继承过于混杂,不好维护
- java类中没有多继承,接口有多继承
- 子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法),但不一定 可以直接访问(私有的属性和方法)
- 如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object
多态的要点:
- 多态是方法的多态,不是属性的多态(多态与属性无关)
- 多态的存在要有三个必要条件:继承,方法重写,父类引用指向子类对象
- 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了
Object类是所有java的根基类,也就意味着所有的java对象都拥有Object类的属性和方法
面向对象衍生:
- OOA:采用面向对象进行分析
- OOD:采用面向对象进行设计
- OOP:采用面向对象进行编码