1、面向对象基本概念
对象:万物皆对象,对象是由静态的属性和动态的方法组成。
类:一组具有相同属性和行为对象的抽象事物。
消息:向某个对象发送请求。(如:手机来电)
方法:对象对收到请求的响应。(如:手机收到来电会震动提示)
2、面向对象的基本特征
抽象:从一个具体的对象中提取提取一组数据,去除非本质和特性的属性,保留本质的、共性的。
比如学生,有很多的属性(学号、姓名、性别、身高、体重、血型、专业、班级、成绩),如果我们要做一个学生成绩管理系统,我们应该关注的,除了学生的基本信息(姓名、性别等),还要关注和学习相关的属性(学号、专业、班级、成绩),不用关注他的血型、体重、身高等跟成绩无关的属性。而如果我们要做的是一个学生健康管理系统,那么除了基本属性,身高、 体重就是学生的本质属性。
封装:给对象一个边界,将内部信息尽量的隐藏,只保留对外的操作接口。比如:显示器内部的元器件是看不到的,也不允许随意摆弄,而是留下电源、信号接口以及调节亮度的按钮。封装使得对象更加的安全,容易。
继承:继承是允许后代直接使用前辈直接拥有的。比如,长得像父母就是继承了父母的部分基因。如果自然界中没有继承,世界就依然是混沌状态,所有生物的出现都是从初始状态,也就没有了进化。继承是一种代码重用的机制,使得代码更省略、更可靠、更高效。
比如:一个拥有卡车设计和制造能力的企业,要设计消防车,显然是比没有经验的企业更加高效和可靠,因为他继承了之前的设计和制造能力,只是需要在此基础上稍加改动即可。
多态:同样的消息发送给不同的对象,不同的对象做出的响应可能有所不同。比如:跑步运动员和游泳运动员,都有“出发”的这个方法,当收到裁判员传来的消息时,都开始执行“出发”,但是他们所做出来的动作是不相同的。
3、面向对象的设计
1、类的设计:考虑应该由哪些属性去描述这个类,这个类应该提供什么方法?
2、方法(函数)设计:函数名、参数和返回值类型
如果需要返回多个结果,函数返回值如何设计
(1)可以将多个返回结果融在一个结果中,用特定的值表示其中的一个结果。比如查找函数需要返回是否找到以及找到的话下标是多少两个结果。可以将这两个结果并在一个整型返回值中,用-1表示没找到,找到的话就返回下标。这样设计的理由是下标不可能为-1,所以-1可以表示特定的含义。
(2)将多个返回值封装成一个类对象
(3)可以考虑使用输出型参数,在Java中就只能使用引用类型了。