其实刚开始接触面向对象编程的时候,对于面向对象这种关系我实在没搞懂,一直等我接触了一些具体实现的时候才能逐渐理解面向对象到底是什么意思
面向对象,跟我们之前学的c语言面向过程不同,面向过程在我的理解中,可以把它看作是一个具体问题分析的流程,什么时候要干什么事情是有一套具体的流程的,这些流程都最终由main函数确定好,而流程的具体实现则需要你利用定义具体的方法,按步骤实现,这种情况其实更适合一个算法的实现,比如要实现一个图的深度优先搜索,什么时候定义栈,什么时候构造图的数据类型,什么时候将图的点放到栈中并开始遍历以及什么时候结束是有一套具体的流程,按照逻辑一步步实现的。
而面向对象则不同,面向对象则在我的理解中则更像一种上帝视角,这种情况更适合做一些大的项目工程,就比如说我要完成一个游戏,很显然这个游戏是一个项目,就拿推箱子为例,首先回顾一下推箱子一共出现了什么东西:箱子和人,这时候就可以利用面向对象的思想,把箱子(Box)和人(Person)单独拎出来抽象化,这两个对象都有自己的属性,比如体积,坐标和移动方式,这时候我要开始构造游戏,这个游戏有几个箱子我就要构造几个实例化对象。
构造实例化对象的方法就是Box box1 = new Box(),括号里面需要传入的就是这个实例化box1相应的信息,比如坐标,id等
将不同的类型抽象化为对象,由对象实例化具体的事物,真正的程序对这些对象进行操作。这就是面向对象
Java中,每个对象都有一个类:类定义方法和字段,方法和字段统称为成员
▪ 类定义类型和实现
–类型≈ 可以使用对象的位置
–实施≈ 对象的工作方式
▪ 粗略地说,类的方法就是它的应用程序编程接口(API)定义用户如何与实例交互