201521123027 <iava程序设计>第六周学习总结
1. 本周学习总结
1.1 面向对象学习暂告一段落,请使用思维导图,以封装、继承、多态为核心概念画一张思维导图,对面向对象思想进行一个总结。
注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖面向对象的核心内容即可。
注2:颜色要少、连线不要复杂,必要的时候要在连线上进行说明。
2. 书面作业
Q1.clone方法
1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?
答: Object对象中的clone方法是被protected修饰,需要在同一个包里或者在子类中才可以访问,在自定义的类中克隆对象要覆盖clone方法,声明改为public,另外还需要实现Cloneable接口。
1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
答:当我们希望方法只能在子类中或在同一个包内访问,不能被不是同一个包内的类访问时可以使用protected进行修饰;
例如在作业Shape中,子类Circle、Rectangle都是继承Shape类,所以这两个子类有getPerimeter()与getArea()两种方法,而我们只想这两种方法只在子类Circle、Rectangle中调用,不想其他的类获得这两种方法,故我们要用protected进行修饰getPerimeter()与getArea()方法。
1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?
答:不能成功;因为protected修饰了clone()方法,所以clone()方法不能被其他包内的类调用,而且Employee类与TestProtected类分属不同类,故无法成功。
Q2.使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2
仅需粘贴关键代码与运行结果,图片不要太大。
内部类:
Comparator<PersonSortable2> AgeComparator = new Comparator<PersonSortable2>(){
public int compare(PersonSortable2 o1, PersonSortable2 o2) {
if (o1 == o2) return 0;
return o1.getAge()-o2.getAge();
}
};
Lambda表达式:
PersonSortable2 o1;
PersonSortable2 o2;
Comparator<PersonSortable2> NameComparator = (o1 , o2) --> o1.getName().compareTo(o2.getName());
Comparator<PersonSortable2> AgeComparator = (o1,o2) --> o1.getAge()-o2.getAge();
运行结果:
Q3.分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?
Comparator<Shape> shapeComparator = new Comparator<Shape>() {
@Override
public int compare(Shape o1, Shape o2) {
//你的代码
}
};
答:shapeComparator所指向的对象实现了Comparator接口,并且重行写了compare()方法覆盖了父类的compare()方法。
Q4.GUI中的事件处理
4.1 写出事件处理模型中最重要的几个关键词。
事件:用户在GUI组件上进行的操作,如鼠标单击、输入文字、关闭窗口等;
事件源:能够产生事件的GUI组件对象,如按钮、文本框等;
事件监听器:调用事件处理方法的对象;
事件适配器:在适配器中,实现了相应监听器接口的所有方法,但不做任何处理。
4.2 使用代码与注释,证明你理解了事件处理模型。
private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {
String a=aTextField.getText();//得到aTextField输入的字符串
String b=bTextField.getText();//得到bTextField输入的字符串
double da=Double.parseDouble(a);
double db=Double.parseDouble(b);
resultLabel.setText(""+(da+db));//JLabel得到两个double数字的和
}
//JButton的功能,在里面输入想要实现的功能,在运行时按下按钮触发事件,实现功能,例如本代码,实现输入两个数字字符串,并转换为double数字,并相加
Q5.结对编程:面向对象设计(大作业2-非常重要,未完成-2)
继续完善上周的项目作业。考核点如下:
5.1 尝试使用图形界面改写。
登录界面:
private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {
String a= nameTextField.getText();
String b= passwordTextField.getText();
if(a.equals("ccc")&&b.equals("123456")){
Tips.setText("登录成功!");
}
else
Tips.setText("登录失败,请重试!");
}
商品界面:
5.2 给出两人在码云上同一项目的提交记录截图。
5.3 与上周相比,项目的主要改动是什么?
答:主要改动是在netbeans中进行了图形界面的设计,用鼠标点击按钮来实现购物的功能,使整个过程更加清晰明了。
3. 码云上代码提交记录及PTA实验总结
3.1. 码云代码提交记录
3.2. PTA实验
5-3此题用数组来实现栈的功能。最难的在于判断栈空和栈满时输出相应的null,可以直接调用IntegerStack接口中的size()方法,代码为if(this.size()>=arr.length) return null;。
5-4静态内部类的使用。在外部类的方法中创建内部类对象,值得注意的是静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().属性 的方式访问。
201521123027 <iava程序设计>第六周学习总结的更多相关文章
- 201521123027 <java程序设计>第13周学习总结
1.本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2.书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.e ...
- 201521123027 <java程序设计>第11周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2.书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchro ...
- 201521123027 <java程序设计>第八周学习总结
1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...
- 201521123027 <java程序设计>第七周学习总结
1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...
- 201521123027 <java程序设计>第十周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...
- 20145213《Java程序设计学习笔记》第六周学习总结
20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...
- 20145337 《Java程序设计》第六周学习总结
20145337 <Java程序设计>第六周学习总结 教材学习内容总结 输入\输出 InputStream与OutputStream 从应用程序角度来看,如果要将数据从来源取出,可以使用输 ...
- 20145218 《Java程序设计》第六周学习总结
20145218 <Java程序设计>第六周学习总结 教材学习内容总结 第十章 输入/输出 10.1 InputStream与OutputStream 10.1.1 串流设计的概念 Jav ...
- 《Java程序设计》第六周学习总结
20145224 <Java程序设计>第六周学习总结 教材学习内容总结 第十章输入和输出 10.1.1 ·若要将数据从来源中取出,可以使用输入串流:若要将数据写入目的地,可以使用输出串流. ...
随机推荐
- Entity Framework 帮助文档
Entity Framework (EF) 帮助文档 在代码中定义实体,并生成数据库模型 原文链接 基于已有数据库创建 Code First 实体模型 原文链接 Entity Framework Fl ...
- UVa 10934 Dropping water balloons:dp(递推)
题目链接:https://vjudge.net/problem/27377/origin 题意: 有一栋n层高的楼,并给你k个水球.在一定高度及以上将水球扔下,水球会摔破:在这个高度以下扔,水球不会摔 ...
- 王佩丰第2讲-excel单元格格式设置 笔记
点小箭头都可以进入单元格格式设置 跨越合并 添加斜线 回车 ALT+ENTER 格式刷 数字格式 特定红色 货币VS会计专用 日期 2是1月2号,3是1月3号-- 自定义[例子中是在数值后面加&quo ...
- hashlib,configparser,logging模块
一.常用模块二 hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...
- 利用OpenCms9提供的模块创建新站点
OpenCms 9中提供b一个Demo,Demo使用了alkacon的bootstrap模板.如果已经安装了OpenCms 9,可以登陆http://localhost:8080/opencms/op ...
- Linux基础教程
Linux基础教程之<Linux就该这么学>之学习笔记第一篇... ========================= 一.Basic Linux Commands 基本的Linux ...
- Java项目访问resources文件
最近在对接支付宝支付的开发,需要取到支付的RSA公钥和私钥.于是把公钥和私钥加到resources文件夹里.但是不知道怎么读到这两个文件,也就是不知道路径怎么写.于是网上搜索了下如何获取工作路径,Sy ...
- 分享一个 jmeter ant的build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-t ...
- jQuery框架Ajax常用选项
json(JavaScript Object Notation):轻量级的数据交换(交换的数据转换成与平台无关的)格式 java对象转换成json字符串:使用ObjectMapper类的writeVa ...
- C#最佳工具集合:IDE、分析、自动化工具等
C#是企业中广泛使用的编程语言,特别是那些依赖微软的程序语言.如果您使用C#构建应用程序,则最有可能使用Visual Studio,并且已经寻找了一些扩展来对您的开发进行管理.但是,这个工具列表可能会 ...