一、什么是面对对象
在计算机编程语言中,有两种分支一种是面对对象编程(Object Oriented Programming OOP),另一种是面对过程编程(Procedure Oriented Programming OPP )。
①.定义:
面对过程编程:面对过程编程是一种以“过程”为核心的编程思想,从一步步分析问题,再使用函数把这些步骤一步步的解决。
面对对象编程:面对对象编程是一种以“事物”为核心的编程思想,我们关注的是事物本身的行为,而不关心这个事物本身这些行为是怎么样实现。
②.分类
面对过程语言:C、Fortran等
面对对象语言:Java、C++、Python等
③.对象
我们把我们研究的事物称作对象,从抽象的数字到实际的事物,都是可以看作对象。研究对象应关注对象的状态和行为。
1)对象的状态
对象的状态可以数值表示,比如说0/1就表示这个对象是否存在
2)对象的行为
对象的行为指对对象的操作使改变其状态的过程
3)对象的封装
封装指把对象的状态和和对对象的操作封装到抽象的对象统一体中(类)
④.类
类是具有相同特性(数据元素)和行为(功能)对象的抽象。
对象的抽象化是类,类的具体化是对象(或者说类的实例化是对象)。
1)类的字段
在类中定义的变量,比如私有变量,公有变量等等变量都称作为类的字段。
2)类的属性
类的属性是对象状态的抽象。
类的属性并非指类中的成员变量,属性是一个或两个代码块,表示一个get访问器或set访问器。当读取属性时,通过get访问器读取属性(其实质是读取类中的某个变量)。当设置属性时,通过set访问器设置属性(其实质是读取类中的某个变量)。比如说有getSomething();setSomething(value);此时这个Something就是这个属性。
3)类的操作
类的操作是对象行为的抽象,用操作名和操作方法实现。
⑤.类与对象的联系与区别
1)类是数据类型的别名,它是一种抽象的引用类型。对象只是属于某个引用类型(类)的变量。
2)对象通过类的实例化获取。
⑥.什么是对象变量
1)Java中的“对象变量”其本质是一个指向对象的“指针”
2)所有的对象只能通过对象变量(指针)访问
3)声明一个“对象变量”实际上只是得到能存储“对象”地址的指针,并且使不指向任何对象的“null指针”。我们可以让这个“对象变量”指向已有的对象。也可以让它指向新创的对象(通过类实例化)
二、什么是面对对象的编程思想
面对对象的编程是不关心过程是怎么样实现的,而关心事物的行为逻辑。也就是说,我们可以把过程实现的步骤封装到某一操作中(方法中),而通过操作,控制事物的行为逻辑,来达到我们所需做的工作。比说如:
我们玩的RPG游戏,任何人物角色都有相应的技能,这些技能是怎么实现的我们玩家并不关心,我们只关心通过这个技能能否杀掉怪物,通关游戏。
面对对象编程有三大特征:继承,封装,多态
三、怎么创建新的对象
创建新的对象有两种方式,1、通过关键字“new”,2、通过克隆技术。