1.2面向对象程序设计
对象(object)
对象具有两方面的含义:
-
对于现实世界:客观世界的实体
-
对于计算机:可标识的储存区域(作用:将我们所写的bytecode(字节码/目标代码)对应到我们的内存,将之储存下来)
-
对于自己:可望而不可及的梦想(???!!!)
类(class)
定义:具有共同属性和行为的对象集合(理解:有对象的人是一对儿,人以类聚,对象的集合就是一“类”人)
- 属性:变量(字段field)
- 行为:函数(方法method)
类与对象的关系
-
类是对象的抽象(模板)
-
对象是类的实例(instance)
面向对象的三大特征
1. 封装性
模块化:将属性和行为封装在类中 ,程序定义有很多类。
信息隐蔽:将类的细节部分隐藏起来;用户只通过受保护的接口访问某个类。
2. 继承性(inheritance)
继承性:父类和子类之间共享数据的方法
继承的好处:
(1) 更好的的进行抽象和分类
(2) 增加代码的重用率
(3) 提高可维护性
3. 多态性(polymorphism)
多态:
(1) 不同的对象收到同一个消息(调用方法)可产生完全不同的效果
(2) 实现的细节则由接收对象自行决定
举个例子:身为舔狗的我面对公司领导打招呼的的方式肯定是与和普通员工的打招呼的方式是不一样的。身为父亲的我面对我爹的态度与面对我儿子的态度肯定是不一样的(醒醒吧,你连个对象(object)都没有!)
面向对象的设计要点
-
认为客观世界由各种对象组成
-
程序的分析和设计都围绕着
(1) 有哪些对象类
(2) 每个类有哪些属性和方法
(3) 类之间的关系
(4) 对象之间发送消息(调用方法)
ps:因为笔者是初学者,也是在mooc中国家精品课程唐大仕老师开的Java程序设计课程上自行学习,通过博客形式发表自己的学习笔记与大家分享。所以可能会与其他人的笔记有相似之处,但是博主博客并无抄袭之嫌,如有不当之处还请大家海涵。