JAVA学习笔记五---面向对象

                               JAVA学习笔记六---面向对象


面向对象四大特征

抽象、封装、继承、多态

6.1 抽象

抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面,抽象只关注对象的哪些属性和行为,并不关注这此行为的细节是什么。

抽象是把一个事物概念化的过程,包括属性(静态特征),方法(动态特征),类,类和对象的转变。

比如说汽车,四个*,以然料为动力,有生产厂家,销售商,重量,长度……只要符合这么一组特征的事物我们都可以称它为汽车。于是汽车的概念便形成了,不管是小客车,大客车,载货汽车,轿车……“汽车”这两个字就概括了具有这么多特征的机器。

6.2 封装

通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口.面向对象的本质就是将现实世界描绘成一系列完全自治,封闭的对象,可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口.

封装给对象提供了隐藏内部特性和行为的能力,对象提供一些能这被其它对象访问的方法来改变它内部的数据。

1、提供构造方法(有了构造方法才能通过new去构建一个对象)
2、静态块(做的类的初始化的工作,执行在new之前)
3、控制访问、是否允许外部改变内部的某一属性,如果不允许,就必须通过管家去改变。

Java使用private、protected、public与默认修饰符提供了成员访问控制。

 private:如果实体使用private修饰符声明,那么实体将只能由定义实体的类中的包含的代码访问

 protected:实体只能由定义在如下范围内的代码访问

                    1. 定义实体的类

                    2.相同包中和定义类一样的类

                    3.定义类的子类,不管子类在那个包中定义

默认:实体可以由定义在如下范围内的代码访问

                    1.定义实体的类

                    2.定义在同一包中的类,类似于定义实体的类

public:实体可以由任意类中的代码访问
 

JAVA学习笔记五---面向对象

6.3 继承

继承是从已有类得到继承信息创建新类的过程,继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段.

子类继承父类属性(静态特征)和方法(动态特征),继承必须遵循封装当中的控制访问.

使用继承的目的是为了代码的复用。

6.4 多态

多态性是指允许相同或不同子类型的对象对同一消息作出不同响应

重载:同一个动作作用在同一个对象上拥有不同的解释  

例如,我们的add函数,我们实现了两种不同的参数就是一种重载。

add(int x,int y)和add(float x,float y)

这就是一个比较典型的重载

重写:同一个动作作用在不同的对象上拥有不同的解释  

6.5 两者的区别

重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。

覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是函数的实现体不一样

2.类的关系区别

覆盖是子类和父类之间的关系,是垂直关系;重载是同一个类中方法之间的关系,是水平关系

3.产生方法区别

覆盖只能由一个方法或只能由一对方法产生关系;重载是多个方法之间的关系。

6.6 总结

JAVA学习笔记五---面向对象

 第六章完成。