05.面向对象(基础概念)

1、结构化程序设计
通过入口函数,从上往下,一句一句执行下来。函数中调用其它函数的执行过程。
以功能或模块为中心(主导)
main>quickSort>print

什么是面向过程?
自顶而下,逐步求精,以模块调用模块的形式设计。

2、面向对象概述

2.1 什么是面向对象
oop: Orient object Programing
程序的设计:一切以类为中心来展开,把相关的数据和功能集中到一个类中。
2.2 面向对象的实质
面向对象是按一定的设计需求,将数据和实现过程以类的形式封装起来,以对象为主体进行调用执行的软件设计思想。
2.3 举个例子
中文语言习惯:警察抓贼
面向过程表达方式: 抓(警察1,贼1)把某个警察和某个贼传进来
面向对象表达方式:警察1.抓(贼1);
警察:执行行为的主体对象
抓:行为
贼:行为操作的目标

3 、面向对象的特性

3.1 三大特性
封装:把相关数据与方法封装起来,通过一定约束手段限制外部程序对其的访问。
使得数据的安全更有保障,不暴露某些操作功能。
把一系列相关的功能,集中到一个类进行管理。
继承:从某个资源对象上继承它的资源下来。
多态:一个事物有多种形态。 一个行为有多种表达方式。例如不同地方表示友好额方式不同。
3.2 面向对象与面对过程对比

面向过程劣势
面向过程不利于理解和扩展性;中大型系统不适用;维护成本高;很难做到接口化、多态化程序设计。不利于软件建模。
面向过程优势
易理解:比较贴近人的思维习惯。
效率高:复杂问题简单化–简化编程难度。
易维护:面向对象,继承,接口(降低耦合度),只需改动局部,便可完成软件修改。
易扩展:利用类的特性(接口,继承),为将来开发提供良好接口(高内聚,低耦合)。
封装性:把一些关键的数据,实现细节封装起来,只提供一些方法给使用者。
适合用作中大型软件的开发。

4、类与实例

4.1 什么是类
类是泛指某一类别的事物,比如人、老师、学生…
4.2 什么是实例
实例(对象)是真实存在(计算机创建出来的)的某一个实体。实实在在的一个个体对象。

5、类的组成

5.1 类可以由哪些部分组成
{1}成员变量 (Field)
{2}行为方法 (Method)
{3}构造方法 (Construction Method)
{4}初始化块 (initialize Block)
{5}内部类 (Inner Class)
其他相关:
内部接口,内部枚举
5.2 构成规则
{1}构造器 [必有的]
(即使我们没有提供,编译会自动加上)
{2}成员变量 [0-N]
{3}行为方法 [0-N]
{4}初始化块 [0-N]
{5}内部类 [0-N]

6、权限修饰符

6.1 什么是修饰符?
修饰符是用来修饰某个程序部件的标识符。“标注”这个部件持有什么特性(属性)。
6.2 什么是权限修饰符?
专门用作修饰权限的这一类的修饰符。
6.3 权限修饰符有哪些?
public,protected,default默认(不填),private

7、修饰符一览表

在这里插入图片描述
在这里插入图片描述

8、属性/成员变量

8.1 什么是属性
一个类的特征属性,每个类都有它的特征属性。
比如:人---->身高,体重,肤色…
8.2 属性的分类
个体的属性,(全局)类的属性

9、行为方法

9.1 方法的定义
在这里插入图片描述
9.2 形参的使用
一个或以上参数
在这里插入图片描述
数组为参数
在这里插入图片描述
可变长参数
在这里插入图片描述
在这里插入图片描述

9.3 返回值的声明
{a}无返回值
void声明符,没有返回值
return ;直接退出当前方法(break退出循环)
{b}有返回值
必须声明返回值的类型
return 值;返回结果给上层调用者
(方法里面要有参数)
在这里插入图片描述

10、构造器

10.1 什么是构造器
构造器是一个很特殊的方法。1.它的命名与类名是相同的。2.不能有返回值的声明。
构造器 = 没返回值声明 + 名称与类名相同
在这里插入图片描述
10.2 构造器可以分为两类
a.有参构造器
b.无参构造器
在这里插入图片描述
10.3 构造器声明格式
[权限修饰符] 类名 (形参列表){
…内容…
}
10.4 构造器作用
对创建的对象做初始化操作。
是对外提供创建对象的“入口”,以选定一种初始化方案(用这个构造器来做初始化)。例如new Person();new Person(5);new Person(“andy”,50)。
有参构造器,可以采集外部数据。

10.5 其他事项
如果,我们提供了构造器,编译器不会自动提供无参构造器。

11、new 关键字

11.1 new 有什么作用
创建数组,创建对象
11.2 new使用的误区
不要在类的初始化过程中,再new自己。
在这里插入图片描述
new的使用:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12、this关键字

注意事项:如果在方法中出现了成员变量同名的局部变量,在局部变量声明之后的所有同名变量只表示这个局部变量。
12.1 this的含义
this 表示当前的这个对象,是一个特殊符号。
12.2 this的使用
引用当前对象的属性。this.name ,this.age;
调用构造器。this(参数…);
引用当前对象的方法。this.sleep;
在这里插入图片描述
12.3 this链式调用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13、 初始化块

13.1 什么是初始化块
声明在类体中的一个代码块,它会在创建对象时会自动被执行,主要用作类或者是对象的初始化。
在这里插入图片描述在这里插入图片描述
13.2 初始化块有两种
静态(static)初始化块:主要用作类变量的初始化。给类初始化,做一些准备工作。
非静态初始化:主要用作成员变量的初始化。
13.2 变量的初始化时机
在这里插入图片描述
备注:局部变量要手动赋值才可以使用(否则编译无法通过)。
类变量:归属于类的属性(类级别的属性,所有对象都共享这个属性)
成员变量:归属于对象的属性(对象级别属性,当前对象独享)
13.3 自动赋零值
类变量,成员变量即使没有给它赋初始值,本身有个默认值。
整型:0,浮点:0.0,boolean:false,char:’\0’,引用类型:null。
13.4 初始化顺序
初始化是从类体里面从上往下走(除掉构造器以外),每一行非静态初始化块都会依次执行。
在类创建的初期会预读整个类的成员变量,预先在内存里面设置好位置,一开始String name 创建对象就已经执行了,已经存在内存里面了已经分配好空间了,执行赋值是后面做的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值