内容
02递归补充 + 03面向对象(01-13)
Notes
02递归补充
- PPT49代码 - 利用递归计算5的阶乘
- 利用递归完成Fibonacci数列 - PPT51代码
- 利用非循环的方法解决F数列问题 - 计算第40个数 - Fab.java
03面向对象
- instance实例 = object对象
- 对象之间的关系
– 关联关系:最弱
– 继承关系: xx是一种xx
– 聚合关系:整体和部分(聚集 - 弱耦合;组合 - 强耦合) - 面向对象三部曲:
– 有哪些类和对象
– 类和对象应该有哪些属性和方法
– 类和类之间应该有哪些关系 - 抽象问题找类时,首先找名词
- 先定义类,才能有对象
- 对象是静态属性(成员变量)和动态属性(方法/函数)的封装
- 代码练习之狗抓老鼠Dog.java
- 成员变量的作用域 - 整个类体
- Java除了8个基本类型,其余都是引用类型,引用类型的初始值都是null
- 基本类型变量占一个内存(stack),引用变量占两块内存(stack存放局部变量 + new出来的东西放在heap中 )
- 构造方法 - 名称必须与类名完全一致,并且不能有返回值(Person.java)
- 定义构造方法后,系统不再提供默认方法
- 命名规则
– 类名首字母大写
– 变量名和方法名首字母小写
– 运用驼峰标识 - TestBirthData\Test.java - 方法的调用
- TestPoint.java - 定义点坐标,要求1. 可以生成具有特定坐标的点对象;2. 可以设置三个坐标的方法;3. 可以计算“点”距原点距离平方的方法;4. 编写程序验证
- 重载:方法一样参数不同 - 参数的类型或个数不同(TestOverload\Test.java & TestOverload.java)
- 构造方法也可以构成重载
- 非静态方法针对每个对象进行调用
- 实例:TestCircle.java - 分析内存的执行过程和布局
- 打印完成以后,调用方法占用的内存消失
- 添加方法时,要学会分析要求 - 确定方法三步走:1. 方法名;2. 方法参数;3. 返回值
- this关键字 - PPT103
- static关键字 - Cat.java
- 静态变量存在data segment中
- 类名.xxx - xxx一定是静态变量
- 动态方法针对某一个对象调用,即要new一个对象出来
- 静态方法不针对对象,可以直接调用,调用方法:类名 / 类的对象名.xxx
代码练习
- PPT49代码 - 利用递归计算5的阶乘
- PPT51代码 - 利用递归完成Fibonacci数列
- Fab.java - 利用非循环的方法解决F数列问题 ,并计算第40个数
- Dog.java - 方法的调用练习
- Person.java - 类的构造函数练习
- TestBirthData\Test.java
- TestPoint.java - 定义点坐标,要求1. 可以生成具有特定坐标的点对象;2. 可以设置三个坐标的方法;3. 可以计算“点”距原点距离平方的方法;4. 编写程序验证
- TestOverload\Test.java & TestOverload.java - 方法的重载
- TestCircle.java - 分析内存的执行过程和布局
- PPT103 - this关键字分析内存
- Cat.java - static关键字分析内存 + 删去static关键字后分析内存