一、什么是面向对象(opp)
1.什么是程序
(《操作系统》对其有明确定义)。这里不是讨论程序的定义
在我的认识中,自我接触编程以来,以至于即将走上工作岗位。我写的程序都是在 解决问题。
从基础的 解决一些数学问题(如:求和,水仙花,平闰年等等)。到解决生活中的小需求(在控制台与自己互动的一些小案例)。程序之于我,就是解决问题的一种方式。
无论是面向对象 还是 面对什么,管他呢,究其根本它不过是解决问题的一种方式。
2.什么是对象
java中万物皆可为对象。
对象可以代表一切客观存在的事物!看得见(不局限于肉眼)!摸得着!具有实体!一个对象代表着一个真实存在的物体!
3.如何描述对象
这里的描述指的是,将现实生活中真实存在的物体,映射到程序中(在java中)的一种方法或者规范。
在java中从两个方面描述对象:对象的属性、对象的方法(行为)。
- 对象的属性
对象的属性指的是,这个具体的事物有哪些特征(如:一瓶饮料这个对象,它具有容量,价格,味道等等特征) - 对象的方法
对象的方法,一般由对象的 调用者(对象的引用)来调用。一般用来对外提供服务。及“我(对象)”可以做什么。方法就是由程序员编写的函数。在opp程序语言设计中,方法一般可以独立完成一个行为或人物。
4.什么是对象的引用者
假设有 一个 Person 类
先看下面这段代码:
Person p = new Person();
/* 这句话的意思不是创建了一个类型为Person 的 p对象。!!!
可以这样去理解,但是不能这样去解释!!!
代码的执行顺序应该是从 左——> 右。
new Person();这句话代表着,创建了一个对象。
Person p 这句话代表着一种操作权限。意味着 p可以操作一个 Person类的对象!
通过 = 将两者之间的关系 对应起来。
*/
/* “=” 是赋值运算符。变量p中存放的是,这个Person对象在(堆)内存中的地址。
因此可以将其理解成这个对象的引用,即对象的操作者。
*/
二、面向对象程序设计理念
1.面向过程
引入一个脑筋急转弯:大象装冰箱的故事。
将大象装冰箱需要几步呢?答:第一步打开冰箱。第二步把大象装进去。第三步关闭冰箱门。
如果将其映射到程序中,首先找找我们要解决的问题是是那么?----把大象装进冰箱
解决方式是什么? 第一步-----第二步-----第三步…。
这就是面向过程的解题思路:将程序的重心放在 告诉计算机 — 第一步怎么做 — 第二步怎么做 — 第三步怎么做 这样就可以解决问题。如果映射到程序中就是:先执行哪个函数,再执行哪个函数,,,直到解决问题为止。