JAVA面向对象第一天
一. 知识点:
1. 类和对象
二. 关键问题(理论):
1. 简述什么是类、什么是对象
2. 简述基本类型变量与引用类型变量赋值时的差别
3. 简述null的含义
三. 关键代码(操作):
1. 经典案例(课上完成):
1) 定义Tetris项目中的Cell类,要求如下: (8)
定义Cell类来表示格子,类中需要包含两个成员变量:
row表示行号,类型为int
col表示列号,类型为int
2) 实现格子下落、左移及获取格子位置信息的功能,要求如下: (15)
实现格子的下落功能,即: 为 Cell类定义下落的方法,调用该方法后,格子的位置将下降一行。
实现格子的左移功能,即: 为 Cell类定义左移方法:调用左移方法,并传入需要移动的列数,则格子将向左移动相应的列数.
实现格子的getCellInfo方法,调用该方法,即可打印格子的位置信息。
修改: 添加格子的右移方法,调用该方法后,格子的位置右移一格
3) 创建Cell对象并添加打印方法,要求如下: (20)
设置格子的坐标,然后在界面上打印显示格子的位置信息。
修改:创建Cell对象,调用getCellInfo()方法后,输出格子行号和列号
2. 作业(课下完成):
1) 创建Car汽车类,包含: (25)
属性:brand(品牌),price(价格),color(颜色)
方法:show(),用于输出汽车对象的3个属性
startup(),用于输出brand品牌的汽车启动了
创建CarTest类,在main()中:
创建Car的两个对象,并给属性赋值,再调用方法
2) 创建Cell对象cell1,声明Cell型引用cell2并赋值为cell1 (10)
设置cell1的row为2,设置cell2的row为5,输出cell1的row的值
JAVA面向对象第二天
一. 知识点:
1. 方法的重载
2. 构造方法
3. 引用类型数组
二. 关键问题(理论):
1. 简述什么是方法的重载
2. 简述构造方法的作用、构造方法如何调用?
3. 简述java中this关键字的含义
三. 关键代码(操作):
1. 经典案例(课上完成):
1) 重载drop方法,moveLeft方法,要求如下: (10)
调用 moveLeft 方法,不用传入参数,格子即左移一列
调用 drop 方法,传入下落的行数后,格子可以下落多行
修改: 重载moveRight()方法,传入参数,格子位置右移多格
2) 给Cell类添加构造方法,要求如下: (5)
为 Cell 类定义有参构造方法,并在构造方法中初始化 Cell 的行和列
3) 给Cell类添加重载的构造方法,要求如下: (10)
为 Cell 类定义默认构造方法
为 Cell 类定义构造方法,要求该构造方法接收一个int类型的参数
4) 定义Tetris项目中的T类和J类并测试 (60)
修改:定义L类并测试
2. 作业(课下完成):
1) 为Car类定义构造方法: (10)
1.Car(String brand,double price,String color),方法中分别给3个属性赋值
2.Car(),方法中调用Car3个参数构造方法,数据为"奥迪Q5",200000,"白色"
2) 定义Tetris项目中的O类包含: (20)
属性: 格子数组cells
构造方法: O(int row,int col),构造方法中对cells进行初始化
方法: drop()下落 moveLeft()左移 moveRight()右移 print()输出格子坐标
创建OTest测试类,在main()中:
创建O类对象,对属性赋值并调用方法。
3) 定义Tetris项目中的I类、S 类、Z类------要求同O类 (60)
JAVA面向对象第三天
一. 知识点:
1. java内存管理
2. 继承
二. 关键问题(理论):
1. 简述java堆中用于存储什么、栈中用于存储什么
2. 简述java是否会发生内存泄漏
3. 简述继承的作用、继承通过什么关键字实现
三. 关键代码(操作):
1. 经典案例(课上完成):
1) 构建Tetromino父类,重构T和J类并测试 (40)
修改: 重构L类并测试
2. 作业(课下完成):
1) 创建Person父类,包含: (40)
属性: name(姓名),age(年龄),address(家庭地址)
方法: show()---问好方法,用于输出所有属性
创建Student子类,继承Person类,包含:
属性: className(班级名称)
方法: study()-----输出name在学习
创建Teacher子类,继承Person类,包含:
属性: salary(工资)
方法: teach()-----输出name在授课
创建PersonTest类,main()中:
创建Student类对象zs,对其所有属性赋值,再调用其所有方法
创建Teacher类对象wkj,对其所有属性赋值,再调用其所有方法
2) 创建Test类,main()中: (10)
创建Person类型引用指向Student类的对象
通过该引用访问其所能访问的所有属性并调用其所能调用的所有方法
3) 重构O类、I类、S类、Z类并测试 (30)
JAVA面向对象第四天
一. 知识点:
1. 方法的重写、重写与重载的区别
2. 封装
3. 访问修饰符
4. static
5. final
二. 关键问题(理论):
1. 简述重写与重载的区别
2. 简述静态变量和实例变量的区别
3. 简述java的访问权限范围
4. 简述何时使用静态变量、何时使用静态方法
三. 关键代码(操作):
1. 经典案例(课上完成):
1) 重写T类和J类的print方法并测试,要求如下: (10)
打印显示前输出"i am a T"或"i am a J"
修改:重写O类的print方法并测试,打印显示前输出"i am a O"
2. 作业(课下完成):
1) 在Student类中,重写Person类的show()方法, (10)
输出:"大家好,我是学生,我叫name,今年age岁了,家住address,所在班级为className"
在Teacher类中,重写Person类的show()方法,
输出:"大家好,我是老师,我叫name,今年age岁了,家住address,工资为salary"
2) 现在做咱们班级的管理系统,需设计一个学生类Student,类中包含: (15)
实例变量:name(姓名),age(年龄),adddress(地址)
静态变量:className(班级名称)
将className设置为咱们班的班级名称
创建两个Student对象访问实例变量
3) 重写L类、I类、O类、S类、Z类的print方法并测试 (20)
打印显示前输出相应的提示
JAVA面向对象第五天
一. 知识点:
1. 抽象类
2. 接口
二. 关键问题(理论):
1. 简述何为抽象方法
2. 接口是否可继承接口、抽象类是否可实现接口、 抽象类是否可继承实体类
3. 简述接口中可以包含的内容
三. 关键代码(操作):
1. 经典案例(课上完成):
1) 根据周长计算不同形状图形的面积,要求如下: (30)
计算多种图形的面积,并比较各种图形面积的最大值。
使用抽象类及其子类的方式实现本案例。
修改:定义三角形类继承Shape,实现其area()方法
注: 计算公式为0.0517*c*c
2) 银行卡系统(实现银联接口),要求如下: (40)
银联接口,用于描述银联统一制定的规则,该接口提供检测密码方法、取钱方法以及查询余额方法。
工商银行接口,用于描述工商银行发行的卡片功能,在满足银联接口的规则基础上,增加了在线支付功能。
农业银行接口,用于描述中国农业银行发行的卡片功能,在满足银联接口的规则基础上,增加了支付电话费的功能。
实现工商银行接口和农业银行接口,并进行测试。
2. 作业(课下完成):
1) 定义正六边形类继承Shape,实现其area()方法 (8)
计算公式详见课后作业
2) 定义建设银行接口CCB继承银联接口,并实现该接口 (15)
要求在银联基础之上增加支付燃气费功能
3) 声明常量WIDTH表示窗口的宽,常量HEIGHT表示窗口的高,值自拟 (5)
JAVA面向对象第六天
一. 知识点:
1. 多态
2. 内部类
3. 面向对象汇总
二. 关键问题(理论):
1. 面向对象的三个基本特征是什么
2. 简述抽象类与接口的区别
3. 简述何为向上造型、能够造型成的类型有什么
三. 关键代码(操作):
1. 经典案例(课上完成):
1) 农行ATM机系统,详细要求如下: (40)
1.1) 中国农业银行的ATM机对所有银联卡提供检查密码功能、取款功能以及 查询余额功能。
1.2) 如果为农行的卡,可以实现支付电话费功能。
2. 作业(课下完成):
1) 在ABCATM类中,添加方法,用于查询余额 (10)
2) 声明接口MyInter,包含抽象方法show(),say() (8)
创建类InnerTest,在main()中:
创建MyInter的匿名内部类对象,调用show()方法