第 7 章 面向对象编程(基础部分)

目录

7.1类与对象

7.1.1类与对象的关系

7.1.2类与对象关系示意图

7.1.3类与对象的区别和联系

7.1.4对象在内存中存在形式(必须搞清楚)

7.1.5属性/成员变量/字段

7.1.6如何创建对象

7.1.7如何访问属性

7.1.8类和对象的内存分配机制

1、Java内存的结构分析:

2、Java创建对象流程简单分析

7.2成员方法

7.2.1基本介绍

7.2.2成员方法快速入门

7.2.3方法的调用机制原理(重点)

7.2.4为什么需要成员方法

7.2.5成员方法的好处

7.2.6成员方法的定义

7.2.7注意事项和使用细节

7.2.8类定义的完善

7.3成员方法传参机制(重点)

7.3.1基本数据类型的传参机制

7.3.2引用数据类型的传参机制

1、案例一

2、 结论及示意图

3、再看一个案例,下面的方法会对原来的对象有影响吗?

7.3.3成员方法返回类型是引用类型应用实例

7.4方法递归调用(重点)(待更)

7.4.1基本介绍

7.4.2递归能解决什么问题

7.4.3递归举例

7.4.4递归重要规则

7.4.5课堂练习

7.4.6递归调用应用实例-迷宫问题

7.4.7递归调用应用实例-汉诺塔

7.4.8递归调用应用实例-八皇后问题

7.5方法重载(OverLoad)

7.5.1基本介绍

7.5.2重载的好处

7.5.3快速入门案例

7.5.4注意事项和使用细节

7.5.5练习题

7.6可变参数

7.6.1基本概念

7.6.2基本语法

7.6.3快速入门案例

7.6.4注意事项和使用细节

7.6.5课堂练习

7.7作用域

7.7.1基本使用

7.7.2注意事项和细节使用

7.8构造方法/构造器

7.8.1看一个需求

7.8.2基本语法

7.8.3基本介绍

7.8.4快速入门

7.8.5注意事项和使用细节

7.8.6课堂练习题​

7.9对象创建的流程分析

案例

7.10this关键字

7.10.1先看一段代码,并分析问题

7.10.2深入理解this

7.10.3this的注意事项和使用细节

7.10.4this课堂案例


7.1类与对象

7.1.1类与对象的关系

7.1.2类与对象关系示意图

7.1.3类与对象的区别和联系

1、类是抽象的,概念的,代表一类事物,比如人类,动物...,即它是数据类型

2、对象是具体的,实际的,代表一个具体事务,即实例

3、类是对象的模板,对象是类的一个个体,对应一个实例

7.1.4对象在内存中存在形式(必须搞清楚)

7.1.5属性/成员变量/字段

7.1.6如何创建对象

1、先声明再创建;   

       Cat  cat; //声明对象

        cat = new Cat();        //创建

2、直接创建:
Cat cat = new Cat();

7.1.7如何访问属性

1、基本语法:对象名.属性名;

案例:cat.name;

           cat.age;

2、类和对象的内存分配机制(重要)

 

7.1.8类和对象的内存分配机制

1、Java内存的结构分析:

        1、栈:一般存放基本数据类型(局部变量)

        2、堆:存放对象(Cat cat,数组等)

        3、方法区:常量池(常量,eg:字符串),类加载信息

2、Java创建对象流程简单分析

 1、先加载Person类信息(属性和方法信息,只会加载一次)

2、在堆中分配空间,进行默认初始化

3、把地址赋给p,p就指向对象

4、进行指定初始化, 比如 p.name =”jack” p.age = 10

7.2成员方法

7.2.1基本介绍

       在某些情况下,我们要需要定义成员方法( 简称方法 ) 。比如人类 : 除了有一些属性外 ( 年龄,姓名 ..), 我们人类还有一 些行为比如: 可以说话、跑步 .., 通过学习,还可以做算术题。这时就要用 成员方法 才能完成。现在要求对 Person 类完善。        

7.2.2成员方法快速入门

 

7.2.3方法的调用机制原理(重点)

注:方法执行完毕或者执行到return,则会销毁。 

7.2.4为什么需要成员方法

7.2.5成员方法的好处

1、提高代码的复用性

2、可以将实现的细节封装起来

7.2.6成员方法的定义

访问修饰符        返回数据类型        方法名(形参列表)        {//方法体

        语句:

        return 返回值;

}

1、形参列表:表示成员方法输入 cal(int n) getSum(int num1, int num2);

2、返回数据类型:表示成员方法输出,void表示没有返回值

3、方法主体:表示为了实现某一功能代码块

4、return 语句不是必须的

7.2.7注意事项和使用细节

7.2.8类定义的完善

7.3成员方法传参机制(重点)

7.3.1基本数据类型的传参机制

7.3.2引用数据类型的传参机制

1、案例一

2、 结论及示意图

        引用类型传递的是地址(传递的也是值,但是值是地址),可以通过形参影响实参!

3、再看一个案例,下面的方法会对原来的对象有影响吗?

p=null 和p = new Person();        对应示意图 

7.3.3成员方法返回类型是引用类型应用实例

7.4方法递归调用(重点)(待更)

7.4.1基本介绍

7.4.2递归能解决什么问题

7.4.3递归举例

7.4.4递归重要规则

7.4.5课堂练习

7.4.6递归调用应用实例-迷宫问题

7.4.7递归调用应用实例-汉诺塔

7.4.8递归调用应用实例-八皇后问题

7.5方法重载(OverLoad)

7.5.1基本介绍

        java中允许同一个类中,多个同名方法存在,但要求,形参列表不一致。

7.5.2重载的好处

1、减轻了起名的麻烦

2、减轻了记名的麻烦

7.5.3快速入门案例

 

7.5.4注意事项和使用细节

1、方法名:必须相同

2、形参列表:必须不同(形参类型或个数或顺序,至少有一样不同,参数名无要求)

3、返回类型:无要求

7.5.5练习题

7.6可变参数

7.6.1基本概念

java 允许将同一个类中多个同名同功能但参数不同的方法,封装成一个方法。

就可以通过可变参数实现

7.6.2基本语法

访问修饰符        返回类型        方法名(数据类型...形参名){

}

7.6.3快速入门案例

7.6.4注意事项和使用细节

 

7.6.5课堂练习

 

7.7作用域

7.7.1基本使用

7.7.2注意事项和细节使用

7.8构造方法/构造器

7.8.1看一个需求

        我们来看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在我要求,在创建人类的对象时,就直接指定这个对象的年龄和姓名,该怎么做? 这时就可以使用构造器

7.8.2基本语法

[ 修饰符 ] 方法名 ( 形参列表 ){
        方法体;
}
说明:
1) 构造器的修饰符可以默认, 也可以是 public protected private
2) 构造器没有返回值
3) 方法名 和类名字必须一样
4) 参数列表 和 成员方法一样的规则
5) 构造器的调用 , 由系统完成

7.8.3基本介绍

构造方法又叫构造器(constructor),是类的一种特殊方法,它的主要作用是完成新对象的初始化。

特点:1、方法名和类名相同

           2、没有返回值

           3、在创建对象时,系统会自动调用该类的构造器完成对象的初始化

7.8.4快速入门

 

7.8.5注意事项和使用细节

 

7.8.6课堂练习题

7.9对象创建的流程分析

案例

7.10this关键字

7.10.1先看一段代码,并分析问题

 

 

7.10.2深入理解this

为了进一步理解 this, 我们再看一个案例 (This01.java)

7.10.3this的注意事项和使用细节

1、this关键字可以访问本类的属性、方法、构造器

2、this用于区分当前类的属性和局部变量

3、访问成员方法的语法:this.方法名(参数列表);

4、访问构造器语法:this(参数列表);注意只能在构造器使用(即只能在构造器中访问另外一个构造器,必须放在第一条语句)

5、this不能在类定义的外部使用,只能在类定义的方法中使用 

7.10.4this课堂案例

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值