面向对象
什么是面向对象
- 面向对象就是面向过程的思想。
- 面向过程开发指的是面向具体的每一个步骤和过程,强调的是功能的行为,我们构造这些功能和方法,然后又这些功能和方法相互调用,完成需求。
- 面向对象则是当我们所需求的功能和方法的步骤逐渐增多的时候,会发现去一一面对这些步骤十分的繁琐,所以我们将过程分类,对功能相似的进项封装,再通过继承多态等思想,使结构更加清晰,步骤可以重复并便捷的调用,这就是面向对象的思想。
- 面向对象的特点:
- 简化开发过程中步骤的繁琐以及提高复用性
- 使我们从实现需求的执行者变为指挥者
- 提高效率
- 是一种符合思考习惯的思想
面向对象示例
如果还是没有完全理解面对对象的概念,现在举个例子。
- 开发的过程其实就是不断的创建对象、调用对象、指挥对象做事情。
- 设计的过程其实就是在管理和维护对象与对象之间的关系。
- 面对对象的特征:封装、继承、多态
类与对象的关系
当我们描述一个现实事物时,会分为两个部分:
1.事物的属性:对该事物基本信息的描述
2.事物的行为:描述该事物能够做什么
而在Java编程中,模拟这个现实事物,最基本的单位就是类,我们把该事物用一个类来体现。
那么事物与类的对应关系就是:
事物 | 类 |
---|---|
属性 | 成员变量 |
行为 | 成员方法 |
- 面向对象就是定义类的成员
- 成员变量:在类中方法外定义变量
- 成员方法:将方法中的static去掉。
- 类与对象的关系:
类:是一组相关的属性和行为的集合
对象:是该类事物的具体体现
案例演示
- 我们描述一个人类时,人类具有:
- 成员属性:姓名、年龄、性别
- 成员功能:吃饭、睡觉、打游戏
- 类定义好了,我们想使用类中的属性和功能,需要对类进行实例化,即创建该类对象
我们使用关键字new。
- 当然我们也可以重写设置对象属性的值
成员变量和局部变量的区别
- 在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上 - 在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存 - 生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 - 初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
匿名对象
什么是匿名对象
匿名对象就是没有名字的对象,也就是创建该类对象的简写(new 类名())
匿名对象应用场景
仅仅只调用一次方法的时候,不需要对象名来区分
我们依然拿对描述人类来举例