复习
- 方法/函数
- 如果需要重复使用某段逻辑,可以将这段逻辑封装成方法
- 在定义方法的时候,需要明确返回值类型,需要明确参数列表
- 方法的递归:在方法内部调用自己本身
- 方法传参:注意参数类型,注意地址是否发生改变
- 方法的重载(overload):在同一个类中,定义了方法名相同但是参数列表不同的方法,构成了方法的重载 - 参数列表是否不同(参数个数是否相同,相同位置上的参数类型是否一样),考虑调用这个方法的时候是否会产生歧义
- 二维数组
- 存储的一维数组的地址,一维数组中存储的是具体的元素
- 注意二维数组的定义格式
- 注意二维数组的内存结构
面向对象
一、简介
- 面向对象是相对于面向过程而言的 - 无论是面向对象还是面向过程,都是生活中的一种思维方式
- 面向对象基于面向过程的 - 对于相对简单的行为,面向过程要优于面向对象;对于相对复杂的行为,面向对象要优于面向过程
二、类与对象的关系
- 对一类对象/事物进行总结,将这一类对象的特征来定义成属性,将这一类对象的行为定义成方法,构成了代表这一类对象的类
- 如果需要产生一个对象,通过new关键字来实现
- 类是对象的总结/概括,对象是类的实现
- 在实际过程中,往往需要将属性私有化(private),然后根据场景来对外提供修改这个属性的方法以及获取这个属性的方法,一般会在这个修改的方法中对传入的参数来进行校验
- 练习:定义一个类表示教师(Teacher),提供姓名、年龄、性别、科目(subject)(Chinese,Maths,English)。提供teach方法表示哪一位老师在讲授什么课程
三、构造方法
- 构造方法是用于创建对象的
- 练习:定义一个类表示矩形/长方形(Rectangle),提供2个方法来获取这个矩形的周长(girth)和面积(area)
- 在Java中,任何一个类中都存在构造方法。如果一个类中没有手动定义构造函数,在编译的时候会自动添加一个无参的构造函数
- 构造函数可以进行重载
- 往往需要在构造函数中对参数进行合法性判断
四、this关键字
- this关键字:在类中表示本类的虚拟对象,可以通过this来调用本类中的方法和属性
- 练习:定义一个类表示圆形(Circle),提供这个圆的周长和面积



