面向对象的基本概念:
对象:万物皆对象,对象是由静态的属性和动态的方法组成。
类:一组具有相同属性和行为对象的抽象。
消息:对某个对象发送请求,比如:手机收到来电。
方法:对象收到请求的响应,比如:手机收到来电的请求后会响铃或震动。
面向对象的基本特征:
(1)抽象:从一个具体的对象中提取一组数据,去除非本质和特性的属性,保留本质的,共性的。
比如:学生,有很多属性(学号,姓名,性别,身高,体重,血型、、)如果我们要做的是一个学生成绩管理系统,我们应该关注的,除了学生的基本信息(姓名,性别),还要关注和学习相关的属性(学号,专业,班级,成绩),不用关注学生的血型,体重,身高,而如果是一个学生健康管理系统,那么除了基本属性,身高,血型,体重,就是学生的本质属性。
(2)封装:给对象一个边界,内部的信息尽量的隐蔽,只留对外的操作接口。
比如:显示器,有一个外壳,内部的元器件是看不到,更是不允许直接拨弄的,而是留下电源、信号接口以及调节亮度的按钮。封装使得对象更加安全,容易。
(3)继承:继承是允许后代直接使用前辈已经拥有的。
比如:谁长的像谁的父母,那就是继承了部分父母的基因。如果自然界中没有,世界依然是混沌的状态,所有的生物的出现都是从初始状态开始,也就没有了精华。继承是一种代码重用的机制,使得代码更省略、更可靠、更高效。
(4)多态:同一条消息发送给不同的对象,他们做出的响应可能不同。
比如:排球运动员和游泳运动员,都有“出发”的这个方法,当收到裁判员传来的消息时,都开始执行“出发”,但是所做的动作是完全不相同的。