# java201903029 **Repository Path**: GUOSD/java201903029 ## Basic Information - **Project Name**: java201903029 - **Description**: 面向对象 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-04-13 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # java201903029 #### 介绍 面向对象 #### 软件架构 软件架构说明 #### 笔记 1.面向对象思想概述 、、、 1.1、面向对象是一种思维方式 java语言是支持面向对象的高级语言; 面向对象的思维方式是当前人类社会的思维方式,java语言对这种思维方式使用编程预言的方式进行了映射,这就是面向对象的编程 1.2、面向对象主旨 主旨(思维方式的出发点): 做什么事情,找谁去做,这个“谁”就是对象; 对象怎么定义呢,由类来进行定义; 编程实现过程 : java中使用class来规范定义对象; 也就是,面向对象的编程,二话不说,创建一个类class,类就是对象的规范定义; 1.3 类的规范定义 java使用类来定义对象 也就是创建一个类(class)用于描述一类对象的特点; java语言中,一个类包含:成员属性、行为方法; 成员属性:用于描述这一类对象的特征属性; 编程实现: 成员属性采用成员变量的形式进行编程; 也就是,在类中定义不同类型的变量的方式进行编程实现; 行为方法:用于描述这一类对象的行为功能; 编程实现: 行为方法采用在类型定义方法函数的方式进行编程实现; 1.4面向对象的编程步骤 (1)新建一个类 (2)在类中定义变量(用于描述对象的属性特征) (3)在类中定义方法函数(用于描述对象的行为特征) 1.5面向对象的核心思想 抽象 、封装、继承、多态; abstract、interface、static、final 2. 抽象的核心思想 、、、、、 2.1抽象的概念 抽象是面向对象编程的第一步;(决定了封装的粒度)(满足高内聚低耦合软件工程原则) 抽象:是从个体到一般; 在面向对象的过程中,抽象是从当前的这一类个体中抽取出所有个体的共性; 抽象出的个体的共性,从两个维度进行描述: 属性: 描述每一个个体的同性特征; 以成员变量的方式定义在类中; 行为: 描述每一个个体的共同的行为特征 以方法函数的方式定义在类中; 2.2.1封装 就是将抽象过程中得到每一个个体的共有的属性和行为封装类中; 封装方式: 属性定义为成员变量; 行为定义方法函数; 封装通过访问控制修饰符进行范围大小的约束,这样是封装所体现的一个重要方法; 2.2.2访问控制修饰符 访问控制修饰符: private: 本类可以访问; 默认的:(什么也不写就是默认的,对应C++的友元friend) 同包的类可以访问; protected: 同包的类以及非同包的子类; public: 所有类 ; 解析: 访问控制修饰符可以修饰成员变量、成员方法、类; 访问控制修饰符不可以修饰 局部变量; 注意: 软件工程原则: 一般成员属性定义为private类型; 一般成员方法定义为public类型; 高内聚,低耦合; 一个类的职责要单一(功能单一)【功能单一并不是只有一个行为方法】 类中的行为方法功能要单一(不要把所有的功能写在一个方法中,注意方法的拆分) ##### 类中的成员变量和成员方法需要通过类的实例对象进行调用;##### #####类中的静态变量和静态方法通过类的名字可以直接调用;##### 2.2.3成员变量和局部变量 局部变量: 定义在方法体内(包括形参)、语句块中的变量就是局部变量; 局部变量需要先声明在使用,在使用之前必须进行初始化; 语句块就是一对{},可以划分变量的作用域范围; 不可以使用访问控制修饰符、static、的修饰符进行修饰;都可以使用final修饰; 局部变量的生命周期的作用域范围: 是从局部变量定义开始, 到局部变量所在范围(所在的方法体、语句块)的末尾为止; 作用域范围同上; 成员变量:(又叫实例变量) 定义在类中的变量就是成员变量。是通过抽象获取用于描述类的属性特征的变量; 成员变量也需要先声明在使用,在使用之前不需要初始化,成员变量有默认值; 可以使用访问控制修饰符、static、final的修饰符进行修饰 默认值和数组的默认值一样; 成员变量的生命周期: 是整个类的实例对象的生命周期;(该类的实例对象存活的生命周期) 所以成员变量又叫实例变量; 作用域范围是整个类,和成员变量定义的位置没有关系; 解析: 如果局部变量和成员变量的名字一样(可以一样,没有编译错误),局部变量的值会覆盖成员变量的值; (判断原则:就近原则,范围最小优先原则) 如果局部变量和成员变量的名字一样,局部变量的值会覆盖成员变量的值;如果还需要使用成员变量,则可以使用this关键字引出即可; this用于区分和局部变量同名的成员变量; 在同一范围内不能有同名的变量(局部变量和成员变量);同名的变量(局部变量和成员变量)的作用域范围不能交叉; 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)