一、面向过程与面向对象
什么是面向过程
面向过程就是说解决一个问题所需要的步骤,然后用函数把这些步骤一步一步实现,在解决这个问题的时候就一个一个依次调用这些函数。
就好比咱们进入车内需要几个步骤?
第一步:打开车门
第二步:人坐进车里面
第三步:把车门关上
这里就可以看出来面向过程就是把一个事情一步一步来实现。
代码表示:
我们依次调用这些方法就可以实现上车这个事情了
什么是面向对象
面向对象就是把现实中的事物都“抽象化”。每一个对象都是唯一的,他们都有自己的属性与行为,(例如:车有开门,载物体,关门这些属性。)
二、类与对象的关系
在现实客观世界里: 类是抽象的,看不见摸不着的;对象是具体的,看的见摸得着。
那我们分开来讲类和对象是什么
类
类是对一组有相同数据和相同操作的对象的定义,是对象的模板,其包含的方法和数据描述一组对象的共同行为和属性。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其他类,形成类层次结构。
对象
对象是由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)组成的封装体,描述客观事物的一个实体,是构成系统的基本单元。
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类的实例化结果就是对象,而对一类对象的抽象就是类,类描述了一组有相同属性和相同方法的对象。
三、基本特征:封装、继承、多态
封装
封装就是将信息隐藏,它是指在确定系统的某一部分内容时,应考虑到其它部分的信息及联系都在这一部分的内部进行,外部各部分之间的信息联系应尽可能的少。
四种访问控制级别
public:对外公开,访问级别最高
protected:只对同一个包中的类或者子类公开
默认:只对同一个包中的类公开
private:不对外公开,只能在对象内部访问,访问级别最低
封装的使用
把尽可能多的东西藏起来,对外提高简洁的接口
比如:
半自动洗衣机接口有以下方法:
①开机
②关机
③放水
④定时
⑤洗涤
⑥排水
⑦脱水
全自动洗衣机有以下方法:
①开机
②关机
③设置洗衣机模式
④开始洗衣服,洗完自动关
我们把放水、定时、洗涤、排水、脱水等,都封装到了设置洗衣机模式里面了,这样子的话就可以为使用者提供更简便的的接口,使用者操作起来的话也会更加方便。
2、继承
让某个类型的对象获得另一个类型的对象的属性和方法。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
用代码表示就是:
一共继承了哪些东西呢?这要分两种情况
当A和B在同一包下,A继承了B中public、protected和默认访问级别的成员变量和成员方法。
当A和B不在同一包下,A继承了B中public、protected成员变量和成员方法。
3、多态
多态:对于同一个行为,不同的子类对象具有不同的表现形式。多态存在的3个条件:
1,继承 2,重写 3,父类引用指向子类对象。
理解多态
在这个运行环境中,引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。Java虚拟机会根据引用变量指向的对象来调用该对象的指定方法,这种运行机制被称为动态绑定。