java基础学习周计划之2--面向对象
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()方法
java基础学习周计划之2--面向对象的更多相关文章
- java基础学习周计划之1--语言基础
JAVA语言基础第一天一. 知识点:1. 认识Linux操作系统2. JAVA开发环境3. Eclipse IDE二. 关键问题(理论):1. Linux中常用命令pwd.ls.cd的作用2. 简述J ...
- java基础学习周计划之3--每周一练
每周一练第一周 一. 关键代码:1.斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...数列第一项和第二项是1, 从第三项开始, ...
- Java基础学习总结(6)——面向对象
一.JAVA类的定义 JAVA里面有class关键字定义一个类,后面加上自定义的类名即可.如这里定义的person类,使用class person定义了一个person类,然后在person这个类的类 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- [转帖]java基础学习总结——多态(动态绑定)
https://www.cnblogs.com/xdp-gacl/p/3644035.html 多态的概念 java基础学习总结——多态(动态绑定) 一.面向对象最核心的机制——动态绑定,也叫多态
- Java基础学习(2)
Java基础学习(二) 面向对象 对象:客观存在的事物 面向对象:人具体关注的事物的某些信息 类:是模子,确定对象会拥有的特征(属性)和行为(方法) 对象的属性:对象具有的各种特征 对象的方法:对象能 ...
随机推荐
- 熊猫猪新系统测试之四:Ubuntu 14.04
目前猫猪在办公室一般用的就是乌班图系统,一方面原因是老本本性能跑不起来Windows,更重要的是本猫觉得Linux系统更开放些.况且现在用的也比较熟了,完全可以脱离Windows鸟!这一系列4篇新系统 ...
- Jquery Easing函数库
从jQuery API 文档中可以知道,jQuery自定义动画的函数.animate( properties [, duration] [, easing] [, complete] )有四个参数: ...
- 初识JAVA——流程控制之if语句
if语句的流程控制主要分为3种:1,单分支结构:if(){……}: 2,双分支结构:if(){……}else{……}; 3,多分枝结构:if(){……}else if(){……}…… 其中作为if语句 ...
- Day4_装饰器
装饰器: #模板def auth(func): def wrapper(*args,**kwargs): res=func(*args,**kwargs) return res return wrap ...
- Django中的Python高级特性
本小文的内容实际是作为<Pro Django>第二版第二章的读书笔记简单总结. 1.类的构建:元类,使用带元类的基类----这个特性的案例主要就是models.Model类,用这种方式高效 ...
- 手把手教你全家桶之React(二)
前言 上一篇已经讲了一些react的基本配置,本遍接着讲热更新以及react+redux的配置与使用. 热更新 我们在实际开发时,都有用到热更新,在修改代码后,不用每次都重启服务,而是自动更新.并而不 ...
- java数组遍历、java方法定义
1.遍历数组for与foreach String [] test = {"java","php","bootstrap","vu ...
- meta 刷新
<meta http-equiv="refresh" content="5;url=地址" /> 5秒后刷新至URL地址
- 常用的几个在线生成网址二维码的API接口
原创,转载请注明出处! 用接口的好处就是简单,方便,时时更新,二维码生成以后不用保存在本项目服务器上面,可以减少不必要的开支,无需下载安装什么软件,可简单方便地引用,这才是最便捷的免费网址二维码生成 ...
- SpringBoot cache-control 配置静态资源缓存 (以及其中的思考经历)
昨天在部署项目时遇到一个问题,因为服务要部署到外网使用,中间经过了较多的网络传输限制,而且要加载arcgis等较大的文件,所以在部署后,发现页面loading需要很长时间,而且刷新也要重新从服务器下载 ...