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基础学习(二) 面向对象 对象:客观存在的事物 面向对象:人具体关注的事物的某些信息 类:是模子,确定对象会拥有的特征(属性)和行为(方法) 对象的属性:对象具有的各种特征 对象的方法:对象能 ...
随机推荐
- nasm中的表达式
nasm表达式支持2个特殊的记号 $和$$;前者标识其所在源码行的开始处地址,所以你可以这样写死循环: jmp $ 而后者标识当前段开始处的地址,你可以通过: $-$$ 找出当前代码在段内的偏移. n ...
- webpack安装使用
一.安装 1.安装node.js,Webpack 需要 Node.js v0.6 以上支持 2.使用npm(软件包管理 )安装webpack (1)全局安装 npm install webpac ...
- FreeMarker系列学习笔记
FreeMarker是一个非常优秀的模板引擎,这个模板引擎可用于任何场景,FreeMarker负责将数据模型中的数据合并到模板中,从而生成标准输出.FreeMarker可以提供昜好的团队协作,对于界面 ...
- volatile的适用场景
volatile保证线程间的数据是可见的(共享的),但不保证数据同步 volatile相当于synchronized的弱实现,也就是说volatile实现了类似synchronized的语义,却又没有 ...
- Find、FindAll、Where的区别
Find.FindAll是一个List<T>的方法,返回一个new List<T>包括符合条件的数据 Where是一个linq方法,适用于任意继承了IEnumerable接口的 ...
- C++:LIB和DLL的区别与使用
共有两种库: 一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library. 一种是LIB包含 ...
- Ubuntu 下命令安装 ZooKeeper
先去 http://mirrors.hust.edu.cn/apache/zookeeper/ 查看自己想要下载的版本 使用 wget 命令去下载 wget http://mirrors.hust.e ...
- flume安装及入门实例
1. 如何安装? 1)将下载的flume包,解压到/home/hadoop目录中 2)修改 flume-env.sh 配置文件,主要是JAVA_HOME变量设置 root@m1:/home/hadoo ...
- js中几种实用的跨域方法原理详解【转】
源地址:http://www.cnblogs.com/2050/p/3191744.html 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通 ...
- Python_zip&rar
import zipfile fp=zipfile.ZipFile('/Users/c2apple/Desktop/彩屏/旭威XW-6600.zip','r') for f in fp.filelis ...