第八天课堂笔记
递归
-
自己调自己,复杂问题简单化
-
递归包括:方法、递归头、递归体
- 递归头:什么时候结束
- 递归体:什么时候调自己
-
递归使用逻辑
-
递归的缺陷:递归调用占用大量系统堆栈
面向对象★★★
- 概念
- 面向对象:虚拟世界模拟现实生活
- 面向过程:按步骤完成
- 类:同一事物抽象的描述
- 对象:具体的实例
- 类和对象的关系:(抽象与具体的关系)
- 属性(成员变量):对象的特征
- 方法/行为:对象实现的功能、事情
- 公共属性 + 公共行为 =》 类
编写面向对象代码★★★★
-
编写类:【修饰符】 class 类名{}
-
编写属性/成员变量:【修饰符】数据类型 属性名 【=值】;
- 成员变量没有赋值,采用默认值
- 整型=>0
- 浮点型=》0.0
- 字符类=》\u0000
- 布尔类型=》false
- 引用类型 =》 null
- 局部变量没有默认值
- 成员变量没有赋值,采用默认值
-
编写方法:【修饰符】返回值类型 方法名称(【参数列表】){方法体}
-
编写测试类:写一个包含main方法的类来调用对象
-
创建对象: 类名 对象名 = new 类名();
-
内存分析图
- 常量池:存放字符串的值
-
-
输出对象的属性值:对象名.属性名
-
赋值: 对象名.属性名 = 值;
-
调用:对象名.方法名([参数列表]);
- 没写static,不能使用类名.方法名
-
成员变量和局部变量的区别★★★★★
局部变量 成员变量/属性/字段 声明位置不同 方法中 类中 作用范围不同 最近{}内 类中 在内存存储位置不同 栈区方法中 堆区对象中 声明周期不同 所在区域 new 对象 -> clean 对象 初始值不同 无,不赋值调用报错 默认初始值 可用修饰符不同 只能用final private、默认的、protected、public、static、final等 -
变量在使用时,遵循就近原则
-
在同一个类中,局部变量和成员变量同名不报错
-
this.: 表示当前这个对象,当谁调用这个方法,就指的是谁
-
-
匿名对象
- new 类名();
- 只调用一次可使用匿名对象
- 做为实际参数进行传递
快捷键
- 方法:先写调用,后快捷键生成
- shift + fn + f2 : 跳转到语法错误的位置
- alt + shift + enter :在指定的类中创建指定的方法
- alt + enter:其他提示方法
fn + f2 : 跳转到语法错误的位置
* alt + shift + enter :在指定的类中创建指定的方法
* alt + enter:其他提示方法