我正在参与掘金创作者训练营第6期,点击了解活动详情
1️⃣前言
大家好,我是翼同学。今天笔记的内容是:
- 面向对象程序设计概述
2️⃣内容
2.1 概述
面向对象设计程序(OOP)是Java开发的特点。Java是完全面向对象的,此时Java程序是由对象组成的,每个对象都包含了对用户公开的特定功能以及隐藏了一些功能的实现部分。在面向对象的程序设计中,我们只关心是否能满足用户需求。
2.2、对象的特征
类的对象一般有两个主要特征:
behavior:对象的行为,也就是动态特征。可以对对象施加哪些操作。state:对象的状态,也就是静态特征。在对对象施加一些操作时,对象的状态如何变化(响应)?
具体的,对象的行为是用可调用的方法定义的,对象的状态可以用属性来保存当前对象的信息。对象状态的改变必须通过调用方法来实现。这就是对象的动态与静态特征。
2.2.1、属性
属性(field)就是类的成员变量,其用于描述类的静态特征,有时又称字段(域)。事实上属性就是类的数据封装。
属性和局部变量又有什么区别呢?具体如下所示。
相同点:
- 定义的格式相同:
数据类型 变量名 = 变量值; - 都是先声明后使用;
不同点:
- 声明位置的不同:属性是直接定义在类中的成员变量。而局部变量是声明在方法中的变量;
- 访问修饰符的不同:属性可以在声明属性时指明其权限,而局部变量是无法使用访问修饰符的;
- 默认初始化值的不同:属性可以拥有默认初始化值,而局部变量没有默认初始化值,必须显式赋值;
- 在内存中加载的位置不同:非
static属性是加载到堆空间中,局部变量则加载到栈空间。
2.2.2、方法
方法可以描述类具有的功能,比如Math类中的sqrt()、random()等,Arrays类中的sort()、binarySearch()等。
方法定义的格式为:
访问修饰符 返回值类型 方法名 ( 形参列表 ) {
方法体
}
注意点:
- 返回值类型:如果方法有返回值,则在声明时指定返回值的类型。并且在方法中使用return关键字来返回指定类型的变量或者常量;如果方法没有返回值,则在声明时使用void关键字来表示。此时不用使用关键字return来返回某些值。如果要使用也只能是
return;表示方法已结束。 - 形参列表:方法可以使用0个、1个或多个形参构成一个列表,形参之间用逗号隔开。
- 方法体: 方法功能的具体实现。
- 另外,在一个方法中不能定义另一个方法。
2.3、类之间的关系
类之间的关系常见的有三种:
dopendence:依赖,即uses-a关系。这是一种最常见的类之间的关系。也就是说,如果在类的方法需要调用另一个类的对象,此时就说该类依赖于另一个类。aggregation:聚合,即has-a关系,这种关系可意味着一个类的对象包含了另一个类的对象。可以理解为关联关系。inheritance:继承,即is-a关系,这种关系也比较特殊。当我们想编写一个类A,而这个类中的部分功能实现跟类B中的方法一样,此时这个类A可以继承于类B,这样类A既可以继承B中的方法,又可以添加其他额外的方法。
3️⃣写在最后
好了,今天的笔记就记到这里。