201521123038 《Java程序设计》 第六周学习总结
201521123038 《Java程序设计》 第六周学习总结
1. 本周学习总结

2. 书面作业
1.clone方法
1.1 Object对象中的 clone 方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?
如果要在子类中覆盖clone方法,则该方法要被public修饰。
如果要拷贝的类型是基本数据类型,可以直接进行简单的拷贝。但是如果是引用类型,如String类型,那么有两种拷贝方式,深拷贝和浅拷贝。
1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
被protected修饰的方法对本包可见,对该方法所在类的子类也是是可见的,但是不可以被外部包访问。在Shape中定义的抽象类Shape中定义的抽象方法getPerimeter和getArea都可以用protected来修饰,对子类Rectangle和Circle是可见的。
1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?

提示错误:Unhandled exception type CloneNotSupportedException。因为在调用clone的类中没有实现Cloneable接口。这边提示了两种修改方法。顺便测试一下深浅拷贝。
第一种:

第二种:

但是显示都是浅拷贝,因为在重写clone的时候没有对String类的name进行处理。
2.使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2
仅需粘贴关键代码与运行结果,图片不要太大。
用匿名类与Lambda表达式重写排序方法:
可以直接在类中重写方法:
public static Comparator<PersonSortable2> NameComparator=(o1,o2)->
{
return o1.getName().compareTo(o2.getName());
};
public static Comparator<PersonSortable2> AgeComparator=(o1,o2)->
{
return o1.getAge()-o2.getAge();
};
也可以在main中调用排序的时候写方法:
Arrays.sort(list,(o1,o2)->o1.getName().compareTo(o2.getName()));
Arrays.sort(list,(o1,o2)->o1.getAge()-o2.getAge());
运行结果:

3.分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?
Comparator<Shape> shapeComparator = new Comparator<Shape>(){
@Override
public int compare(Shape o1, Shape o2) {
//你的代码
}
};
用匿名内部类的方法编写,让shapeComparator实现Comparator接口,可以直接通过Arrays.sort进行排序。
4.GUI中的事件处理
4.1 写出事件处理模型中最重要的几个关键词。
在java中的事件处理模型,包括三部分:事件源—事件对象—事件监听器
4.2 使用代码与注释,证明你理解了事件处理模型。
拿老师的参考视频做个例子:
private void calActionPerformed(java.awt.event.ActionEvent evt) {
String a=aTextField.getText();//输入字符串a
String b=bTextField.getText();//输入字符串b
result.setText(a+b);//合并字符串
}
这是一个鼠标点击JButton触发的事件。在输入框中输入字符串a和b,通过点击按钮执行代码,目的在于将输入的字符串a和b合并,并在标签result里输出。
5.结对编程:面向对象设计(大作业2-非常重要,未完成-2)
继续完善上周的项目作业。考核点如下:
5.1 尝试使用图形界面改写。

用图形界面做了购物界面和购物车界面,但是两个界面之间的跳转目前还没有实现,购物车界面的输出上还有问题。
5.2 给出两人在码云上同一项目的提交记录截图。

5.3 与上周相比,项目的主要改动是什么?
- 首先是对上周的代码进行调整,完善了一下购物车类的设定
- 其次是用图形界面改写程序,原来的程序不一定适用于图形界面,要根据界面设计进行调整,图形界面的一些功能实现和预想中的相比还是有难度的。
3. 码云上代码提交记录及PTA实验总结
3.1. 码云代码提交记录

3.2. PTA实验
1.编写栈用
ArrayList比用数组更容易,因为栈有先进后出的特点,而ArrayList中的添加删除等都有直接的代码可以应用于头尾位置,用数组编写需要定义栈顶指针,并且在操作中要处理指针的移动情况。在编写的过程中也要考虑入栈出栈为null的情况。2.使用匿名类与Lambda表达式简化代码,可以直接写在排序语句内。例:
Arrays.sort(list,(o1,o2)->o1.getAge()-o2.getAge());3.参考链接:谨慎地覆盖clone
201521123038 《Java程序设计》 第六周学习总结的更多相关文章
- 201521123038 《Java程序设计》 第二周学习总结
201521123038 <Java程序设计> 第二周学习总结 1.本章学习总结 学会在Java程序中使用函数,使程序层次更清晰 使用StringBuilder编写代码,减少内存空间的占用 ...
- 201521123038 《Java程序设计》 第一周学习总结
201521123038 <Java程序设计> 第一周学习总结 1.本章学习总结 本周已掌握Java配置,初步认识Java运行软件和基本语法. Java语言语法和C语言基本类似,部分不同. ...
- 201521123038 《Java程序设计》 第九周学习总结
201521123038 <Java程序设计> 第九周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- Andrew Ng机器学习课程笔记(五)之应用机器学习的建议
Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.h ...
- C#使用Xamarin开发可移植移动应用(3.进阶篇MVVM双向绑定和命令绑定)附源码
前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 嗯..前面 ...
- android学习Gallery和ImageSwitch的使用
Gallery组件被称之为画廊,是一种横向浏览图片的列表,在使用android API 19 Platform 时会发现Gallery被画上了横线,表明谷歌已经不推荐使用该组件了, * @deprec ...
- MySQL多字节字符集造成主从数据不一致问题
MySQL多字节字符集造成主从数据不一致问题 来自江羽 2013-04-27 16:03:56| 分类: 默认分类|举报|字号 订阅 转载: http://backend.blog.163.co ...
- MySQL索引篇
innodb索引概念 总结记录下innodb的索引概念,以备查看 innodb索引分类: 聚簇索引(clustered index) 1) 有主键时,根据主键创建聚簇索引 2 ...
- Vim入门基础
公司新员工学习有用到,Vim官网的手册又太大而全,而网上各方资料要么不全面,要么不够基础.在网上搜集各方资料,按照自己的框架整理一份Vim入门基础教程,分享出来.特点是偏向基础,但对入门者来说足够全面 ...
- nGrinder 简易使用教程
背景 性能压测工具之前使用的是jmeter,这次说的是nGrinder,先直接搬运两者之间的比较 比较点 JMeter nGrinder 结果 实现语言 Java Java = License Apa ...
- STL学习之find系列函数
这里先介绍find, find_if, find_first_of,三个函数.其余的以后再更新. 一.std::find() 用法:find(first, end, value); 返回区间[firs ...
- MySQL查询1
1.将下列语句复制到sqlyog的询问栏 /*!40101 SET NAMES utf8 */; create table `t_student` ( `id` double , `stuName` ...
- Java虚拟机说明书
JVM运行原理: Class的加载 过程:加载-验证-准备-解析-初始化-执行-卸载 加载:class文件(二进制字节流)被类加载器加载到内存中,将这个字节流所代表的静态存储结构转化为方法区的运行时数 ...