JavaSE 13(面向对象)

前言:

今天准备整理一下JavaSE第二阶段(面向对象)的知识点以及重点,便于自己的复习与巩固,因为这一块内容的概念较多较杂所以需要整理清楚。

1.类和对象:

在这里插入图片描述1
1.什么是对象:

对象(object) 代表现实世界中可以明确标识的一个实体。例如:一个学生、一张桌子、一个圆、一个按钮甚至一笔贷款都可以看作是一个对象。
每个对象都有自己独特的标识、状态和行为。

一个对象的狀态(state,也称为特征(property) 或属性(attribute)) 是由具有当前值
的数据域来表示的。例如:圆对象具有一个数据域 radius, 它是标识圆的属性。一
个矩形对象具有数据域 width 和 height, 它们都是描述矩形的属性。

— 个对象的行为(behavior, 也称为动作(action))是由方法定义的。调用对象的一
个方法就是要求对象完成一个动作。例如:可以为圆对象定义一个名为 getAreaO
和 getPerimeter() 的 方 法。圆 对 象 可 以 调 用 getArea() 返 回 圆 的 面 积,调 用
getPerimeter() 返回它的周长。还可以定义 setRadius(radius) 方法。圆对象可以调
用这个方法来修改它的半径。

2.对象的内存图解:

在这里插入图片描述

3.什么是类:

类是一个模板、蓝本或者说是合约,用来定义对象的数据域是什么以及方法是做什么的。

一个对象是类的一个实例。

在这里插入图片描述

在这里插入图片描述

2.面向对象:

1.类的抽象和封装:

在这里插入图片描述

类的抽象和封装是一个问题的两个方面。

从类的开发者的角度来看,设计类是为了让很多不同的用户所使用。为了在更大的应用
范围内使用类,类应该通过构造方法、属性和方法提供各种方式的定制。

2.面向对象的思考:

在这里插入图片描述

3.什么是面向对象:

面向对象是基于面向过程,对象是将功能进行了封装。只要找到了具体的类,创建出对象,就可以调用其中的具体功能。面向对象也是用来解决问题的一种思维模式。

在以后开发中,先找对象,调用对象中的具体功能。如果真的没有能够完成需求的对象,这时就自己
创建对象,并将所需的功能定义到对象中,方便以后使用

4.什么是面向过程:

面向过程也是解决问题的一种思想,当我们在解决问题时,会按照预先设定的想法和步骤,一步一步
去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。

上述描述的每一个具体步骤我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过
程最直接的体现。

通过上面简单的描述发现,面向过程,其实就是面向着具体的每一个步骤和过程,就是面对具体的每
一个功能函数。这些功能函数相互调用,完成需求

3.局部变量和成员变量的区别:

一.成员变量
​ 在类中定义,用来描述对象将要有什么。

谁可以使用?

本类的方法
其他和本类有关系的类使用

二.局部变量
​ 在类的方法中定义,在方法中临时保存数据。

谁可以使用?

只能在当前方法使用

区别一:定义的位置不同
成员变量定义在类中
局部变量定义在方法中或者语句里面

区别二:在内存中的位置不同
成员变量存储在堆内存的对象中
局部变量存储在栈内存的方法中

区别三:声明周期不同
成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失
局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

区别四:初始化不同
成员变量因为在堆内存中,所有默认的初始化值
局部变量没有默认的初始化值,必须手动的给其赋值才可以使用

区别四:方法名不同

在同一个方法中,不允许有同名局部变量
在不同方法中,可以有同名局部变量
两类变量同名时候,局部变量具有更高的优先级(就近原则)

4.基本类型和引用类型作为参数传递:

1.基本类型作为参数传递:

基本类型作为参数传递时,其实就是将基本类型变量x空间中的值复制了一份传递给调用
的方法show(),当在show()方法中x接受到了复制的值,再在show()方法中对x变量进行操
作,这时只会影响到show中的x。当show方法执行完成,弹栈后,程序又回到main方法执
行,main方法中的x值还是原来的值

在这里插入图片描述

2.引用类型作为参数传递:

当引用变量作为参数传递时,这时其实是将引用变量空间中的内存地址(引用)复制了一份
传递给了show方法的d引用变量。这时会有两个引用同时指向堆中的同一个对象。当执行
show方法中的d.x=6时,会根据d所持有的引用找到堆中的对象,并将其x属性的值改为
6.show方法弹栈。

由于是两个引用指向同一个对象,不管是哪一个引用改变了引用的所指向的对象的中的
值,其他引用再次使用都是改变后的值。

在这里插入图片描述

5.私有private关键字:

类中不需要对外提供的内容都私有化,包括属性和行为。

以后再描述事物,属性都私有化,并提供setXxx getXxx方法对其进行访问。

**注意:**私有仅仅是封装的体现形式而已。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值