【Java】面向对象思想

这里是【Java】,关注我学习Java不迷路
如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位点赞评论收藏⭐️

专栏介绍

【Java】 目前主要更新Java,一起学习一起进步。

本期介绍

本期主要介绍面向对象思想

文章目录

目录

专栏介绍

本期介绍

文章目录

1. 面向对象思想概述

概述

举例

特点

2. 类和对象

什么是类

什么是对象

类与对象的关系

3. 类的定义

事物与类的对比

类的定义格式

4. 对象的使用

对象的使用格式

成员变量的默认值

5. 类与对象的练习

6. 对象内存图

一个对象,调用一个方法内存图

两个对象,调用同一方法内存图

一个引用,作为参数传递到方法中内存图

7. 成员变量和局部变量区别

1. 面向对象思想概述

概述

Java 语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象
思想的指引下,
使用 Java 语言去设计、开发计算机程序。 这里的 对象 泛指现实中一切事物,每种事物都具备自己
属性 行为 。面
向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出
来,描述成计算
机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是
自己一步一步的去
操作实现。

举例

洗衣服 :
面向过程:把衣服脱下来 --> 找一个盆 --> 放点洗衣粉 --> 加点水 --> 浸泡 10 分钟 --> 揉一揉 --> 清洗衣服 -
-> 拧干 -->
起来
面向对象:把衣服脱下来 --> 打开全自动洗衣机 --> 扔衣服 --> 按钮 --> 晾起来
区别 :
面向过程:强调步骤。
面向对象:强调对象,这里的对象就是洗衣机。

特点

面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者
变成了指挥者。
面向对象的语言中,包含了三大基本特征,即封装、继承和多态。

2. 类和对象

环顾周围,你会发现很多对象,比如桌子,椅子,同学,老师等。桌椅属于办公用品,师生都是人
类。那么什么是
类呢?什么是对象呢?

什么是类

:是一组相关 属性 行为 的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征
来描述该
类事物。
现实中,描述一类事物:
属性 :就是该事物的状态信息。
行为 :就是该事物能够做什么。
举例:小猫。
属性:名字、体重、年龄、颜色。
行为:走、跑、叫。

什么是对象

对象 :是一类事物的具体体现。对象是类的一个 实例 (对象并不是找个女朋友),必然具备该类事
物的属性
和行为。
现实中,一类事物的一个实例:一只小猫。
举例:一只小猫。
属性: tom 5kg 2 years yellow
行为:溜墙根走、蹦跶的跑、喵喵叫。

类与对象的关系

类是对一类事物的描述,是 抽象的
对象是一类事物的实例,是 具体的
类是对象的模板,对象是类的实体

3. 类的定义

事物与类的对比

现实世界的一类事物:
属性 :事物的状态信息。
行为 :事物能够做什么。
Java 中用 class 描述事物也是如此:
成员变量 :对应事物的 属性
成员方法 :对应事物的 行为

类的定义格式

定义类 :就是定义类的成员,包括 成员变量 成员方法
成员变量 :和以前定义变量几乎是一样的。只不过位置发生了改变。 在类中,方法外
成员方法 :和以前定义方法几乎是一样的。只不过 static 去掉 static 的作用在面向对象后面课程
中再详细
讲解。
类的定义格式举例:

4. 对象的使用

对象的使用格式

创建对象:

使用对象访问类中的成员:

 对象的使用格式举例:

成员变量的默认值

5. 类与对象的练习

定义手机类:

定义测试类:

 

6. 对象内存图

一个对象,调用一个方法内存图

通过上图,我们可以理解,在栈内存中运行的方法,遵循 " 先进后出,后进先出 " 的原则。变量 p
向堆内存中
的空间,寻找方法信息,去执行该方法。
但是,这里依然有问题存在。创建多个对象时,如果每个对象内部都保存一份方法信息,这就非常
浪费内存
了,因为所有对象的方法信息都是一样的。那么如何解决这个问题呢?请看如下图解。

两个对象,调用同一方法内存图

对象调用方法时,根据对象中方法标记(地址值),去类中寻找方法信息。这样哪怕是多个对象,
方法信息
只保存一份,节约内存空间。  

一个引用,作为参数传递到方法中内存图

引用类型作为参数,传递的是地址值。 

7. 成员变量和局部变量区别

变量根据定义 位置的不同 ,我们给变量起了不同的名字。如下图所示:
在类中的位置不同 重点
成员变量:类中,方法外
局部变量:方法中或者方法声明上 ( 形式参数 )
作用范围不一样 重点
成员变量:类中
局部变量:方法中
初始化值的不同 重点
成员变量:有默认值

局部变量:没有默认值。必须先定义,赋值,最后使用
在内存中的位置不同 了解

成员变量:堆内存
局部变量:栈内存
生命周期不同 了解
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失