201621123005《Java程序设计》第六次学习总结
201621123005《java程序设计》第六周学习总结
1.本周学习总结
1.1 面向对象学习暂告一段落,请使用思维导图,以封装、继承、多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结。

- 书面作业
1. clone方法
1.1 在test1包中编写Employee类,在test2包中新建一个Test类,并在其main中新建test1包中的Employee的对象,然后使用clone方法克隆一个新对象,能否成功?为什么?
不能成功,因为clone()方法使用protected来修饰的,而被protected修饰的只能是同包或是子类访问。
1.2 如果要为自定义的类覆盖clone方法,需注意什么?
需要将clone声明为public,且实现Cloneable接口
1.3 Object对象中的toString, equals, hashCode方法都使用public修饰,而clone方法却被protected修饰,请尝试解释原因。为什么不声明为public呢?
不声明为public是为了安全性,Object中的clone()方法只是浅拷贝,用protected修饰是为了让子类去重写它,实现深拷贝。
2. 内部类
2.1 使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目7-2。请贴图关键代码与运 行结果,请在运行结果中出现你的学号与姓名。



2.2. 分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?
Comparator<Shape> shapeComparator = new Comparator<Shape>() { @Override public int compare(Shape o1, Shape o2) { //你的代码 } };
shapeComparator使用匿名内部类实现了Comparator接口,重写了comparator方法
2.3 题集:6-1(匿名内部类)实验总结。你觉得使用匿名内部类有什么好处?
匿名内部类无需额外创建一个类,可以简化代码,隐藏操作,体现了封装型。
3. PTA实验总结
3.1 PTA(自定义接口)。并回答:相比较不写接口,直接写一个类包含IntegerStack相应的方法来说,定义IntegerStack接口,然后定义其实现类这种方式有什么好处?
更加灵活,当我们想需要更多方法时,可在接口中添加, 然后再将它实现。
3.2 PTA(静态内部类)。并回答:你觉得什么时候应该使用静态内部类?静态内部类与内部类有什么区别?
当内部类与外围类不需要联系时可以用静态内部类。区别是静态内部类不能访问外部非静态的属性和方法。
3.3 PTA(继承覆盖综合练习-Person、Student、Employee、Company)。并回答:使用Collections.sort对引用类型数组进行排序需要有一个什么前提条件?
前提是继承Comparator接口,并重写接口中的方法。
4.大作业-继续完善(尝试使用接口改造你们的系统)
4.1 现在希望将系统中购物车的操作抽象到相应的DAO接口。

4.2 为该接口定义至少两个实现(如数组、列表、文件)。截图自己负责部分的关键代码,要求出现名字与学号。

4.3 给出你们的Main程序,说明定义DAO接口的好处。
//201621123005张凯艳
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in
);
Snack []snacks1 = new Snack[15];
Snack []snacks = new Snack[80];
Snack []snacksCount = new Snack[80];
int n = 0 ;
ShoppingDao shoppingDao = new ShoppingCartDaoArray(80); System.out.println("\t**********货品清单**********");
System.out.println("\t编号\t\t商品名称\t\t商品单价");
for (Snack e: snacks1) {
System.out.println("\t"+e.getNumber()+"\t\t"+ e.getName()+"\t\t" + e.getPrice());
}
System.out.print("\t\tWelcome~~~~\n\t请选择要购买的商品编号:");
while(sc.hasNext())
{
int number = sc.nextInt();
if (number == 0)
break;
snacks[n] =snacks1[number-1];
System.out.print("\t请输入要购买的数量:");
int num = sc.nextInt();
snacks[n].setCount(num);
shoppingDao.addSnack(snacks[n]);
System.out.print("\t加入购物车成功!\t如果继续添加请输入商品编号,否则输入0结束!\n\t请输入:");
n++;
}
System.out.println("*****User:201621123005张凯艳*****");
System.out.println("\t\t++++++购物车列表++++++");
shoppingDao.displayAllGoods();
shoppingDao.totalAllPrice();
shoppingDao.delSnack(snacks[1]);
}
}
5. 代码阅读:PersonTest.java(abstract、多态、super)
5.1 画出类的继承关系

5.2 main函数的代码实现什么功能?
将Person按照年龄升序排列。
5.3 如果将子类中的super构造函数去掉行不行?
不行,如果去掉会出现Implicit super constructor Person() is undefined. Must explicitly invoke another constructor的错误,super也是用来继承父类各种方法和属性的。
5.4 PersonTest.java中哪里体现了多态?
Person类、Student类、 Manager类、 Employee类、Programmer类的toString方法体现了多态性。
3.码云及PTA
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

3.2 截图PTA题集完成情况图


3.3 统计本周完成的代码量
| 周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
|---|---|---|---|---|
| 2 | 381 | 381 | 12 | 5 |
| 3 | 661 | 280 | 19 | 7 |
| 4 | 974 | 313 | 24 | 5 |
| 5 | 1358 | 384 | 33 | 9 |
| 6 | 1698 | 340 | 37 | 4 |
201621123005《Java程序设计》第六次学习总结的更多相关文章
- 201621123005《Java程序设计》第四周学习总结
201621123005<Java程序设计>第四周学习总结 标签(空格分隔): 1.本章学习总结 1. 面向对象设计 1.1 写出你认为本周学习中比较重要的知识点关键词 继承.多态.覆盖. ...
- 201621123005《Java程序设计》第二周学习总结
201621123005<JAVA程序设计>第二周学习总结 1. 本周学习总结 本章学习了String 的不可变性.自动装箱和拆箱过程,并熟悉了动态数组等 Java中的应用,还有Array ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第四周学习总结
20145224-陈颢文 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承与多态 ·继承就是面向对象中,子类继承父类,避免重复的行为定义.重复再程序设计上是非常不好的信号 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155304 2016-2017-2 《Java程序设计》第四周学习总结
20155304 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承: 概念: 面向对象中,为避免多个类间重复定义共同行为.(简单说就是将相同的程序 ...
- 201521123061 《Java程序设计》第四周学习总结
201521123061 <Java程序设计>第四周学习总结 1. 本章学习总结 (1)思维导图: --- (2)上课内容总结: 第四周学习了Java中的继承与多态,思维导图中已经给出了本 ...
随机推荐
- cocos2d-x-3.0 window+eclipse Android Project 环境与开发新手教程
今天闲来没事,听说最新cocos2d-x 出新版3.0.所以来学习一下. 大致參考官方教程:http://www.cocos2d-x.org/wiki/How_to_Build_an_Android_ ...
- git-【十】忽略文件
1.在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置 ...
- Openstack(九)部署nova服务(控制节点)
9.1nova服务介绍 nova是openstack最早的组件之一,nova分为控制节点和计算节点,计算节点通过nova computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,nov ...
- 2006 - MySQL server has gone away
mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了. 造成这样的原因一般是s ...
- zlib编译安装
从http://www.zlib.net/下载了最新的源代码 zlib提供了vs sln文件,在zlib-1.2.8\contrib\vstudio\目录有 其中的zlibstat是编译为静态库zli ...
- What do you think the coming adidas NMD Singapore
adidas NMD Singapore is surprising everybody with a lot of completely new NMD choices combined with ...
- 2.7 The Object Model -- Bindings, Observers, Computed Properties:What do I use when?
有时候新用户在使用计算属性.绑定和监视者时感到困惑.下面是一些指导方针: 1. 使用computed properties来合成其他属性,以构建新的属性.computed properties不应该包 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON HSerializedItem
zw版[转发·台湾nvp系列Delphi例程]HALCON HSerializedItem procedure TForm1.FormShow(Sender: TObject);var img, im ...
- windows 系统相关配置
1. 外接显示器分辨率调节:连接上外接下显示器,在本机空白处,右键,分辨率.然后选择显示器,设置显示相关配置. 详见:http://zhidao.baidu.com/question/13494806 ...
- showDoc的基本使用方法
ShowDoc介绍 ShowDoc就是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率. API文档( 查看Demo) 随着移动互联网的发展,BaaS(后端即服务)越来越流行.服务 ...