- 递归:指方法体调用该方法本身。
- 如果没有结束条件,会不断的进行压栈操作,导致栈溢出。
- 两个要素
- 1、结束条件(一般初始条件)
- 2、递归的关系(相邻状态下的关系)
- 阶乘,斐波那契数列,汉诺塔
- 方法的重载(Overload)
- 在一个类中可以具有多个同名的方法,叫方法的重载。
- 方法的签名:方法名+参数列表
- 如果在同一个类中,存在方法签名相同的方法会报错。
- 方法重载:方法名相同,方法签名不同的多个方法称为重载。(参数列表不同)
- 1、参数个数不同。
- 2、参数类型和顺序不同。
- 3、与形参名字是否相同无关。
- 4、与方法的返回值无关。
- 重载方法的调用
- 1、调用方法时,实参的顺序和类型有完全相同的,则调用该方法
- 2、如果没有完全相同的,则采用就近原则
- 若就近原则结果为多个方法,则报错
- 代码调试
- 打桩式
- 往控制台打印输出信息来查看运行过程中的业务逻辑或者某些变量的状态,值。
- 断点调试(debug模式)
- 断点(breakpoint)作用于某一行代码上,当以调试模式运行代码时,如果执行到断点所在的代码行,就会产生(中断)暂停状态,开发者,可以查看刺客内存中各种变量的值,或方法的调用状态等。
- 调试模式下,箭头停在断点所在的行,表示即将执行此行代码,但未执行。
- 断点调试的快捷键
- F6:单步调试。按一次执行一行代码。
- F5:进入调用的函数。此行代码调用了一个函数,按F5进入调用的函数体内部。
- F7:从调用的函数体内部,返回调用处。
- F8:一直执行,直到遇到下一个断点。
- 打桩式
- 面向对象编程(OOP)
- 与面向过程编程(POP)区别
- 例子:公交车:启动、加速、减速、到站
- POP关注:启动、加速、减速、到站这些事件
- OOP关注:公交车本身,启动、加速、减速、到站这些是属于公交车的行为。
- 例子:公交车:启动、加速、减速、到站
- 面向对象的三个特征:封装、继承、多态
- (透明)
- 类与对象
- 类:对于具有相同特征(属性)的一类食物的抽象,称为类。这一类事物,具有相同的属性或者行为。
- 对象:抽象出来的一类事物的每一个个体,称为这个类的对象。
- “万物皆为对象” 任何一个事物,都可以看成是某个类的一个实例。
- 类的定义
- public class 类名{
- //定义属性和方法
- }
- class是定义类的关键字,前面加权限修饰符,只能是public或default(不写),后面类名。
- 类名遵循Pascal命名:每个单词首字母大写。
- 类名要体现类的主要功能,见名知意。
- 长度适中。
- 要与.java文件名一致。
- public class 类名{
- 类的属性:在类的内部声明的变量,称为
- 类的方法:
- 在
- 1、不带static的方法,称为成员方法,或者成员函数
- 2、带static的方法,叫静态方法,或者类的方法。
- 注:静态方法中不能调用非静态方法(成员方法),成员方法中可以调用静态方法。
- 在
- 对象的声明与创建
- 声明也叫做对象的定义
- 语法: 类名 对象名;
- 注:对象的声明后,在栈分配空间,存对象的引用。
- 对象的创建
- 使用new关键字创建对象,在堆中分配空间。
- 对象名 = new 类名();
- 对象创建之后,在堆上分配空间,主要用于存成员变量的值,自动赋初始值。
- 初始值赋值策略
- 基本数据类型
- 整数0
- 浮点数0.0
- 字符'\u0000'
- 布尔false
- 引用类型(类、接口、数组)null
- 基本数据类型
- 使用new关键字创建对象,在堆中分配空间。
- 对象的声明与创建可以一起进行:类名 对象名 = new 类名();
- 声明也叫做对象的定义
- 对象的使用
- 通过对象来访问对象的属性和方法。
- 使用成员操作符(也叫点操作符) .
- 用法:对象名.属性名; 对象名.方法名(实参);
- 类中的每一个对象,对于类中的成员变量(属性),都有属于自己的一个备份,改变一个对象的属性,不影响其他对象该属性的值。
- 匿名对象
- 创建对象时,可以不将创建的对象赋值给某个对象名,直接使用new创建的对象,而没有赋值给某个对象名,叫匿名对象。
- 注:匿名对象只能使用一次,如果要多次使用一个对象,需要给一个对象名,将new创建的对象赋值给对象名。
- GC垃圾回收机制
- jvm有一个系统线程,专门用来回收分配的空间(堆空间),不需开发者来回收。
- 对于对象分配的空间,以下三种情况会被回收:
- 对象被赋值为null
- 匿名对象使用结束了
- 超出了对象的作用域
- 与面向过程编程(POP)区别
第七天0303 方法 代码调试 面向对象类与对象
最新推荐文章于 2024-02-19 16:50:11 发布