1. 本周学习总结

1.1 面向对象学习暂告一段落,请使用思维导图,以封装、继承、多态为核心概念画一张思维导图,对面向对象思想进行一个总结。

注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖面向对象的核心内容即可。

注2:颜色要少、连线不要复杂,必要的时候要在连线上进行说明。

2. 书面作业

clone方法

1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?

答:在自定义的类中覆盖clone方法时需要声明为public,否则其他类无法调用,因为protected修饰的方法是能被本类、继承类或同一个包里面调用。

1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。

答:设计类的时候允许本类、同包下或是子类可以调用的方法或属性是使用protected修饰。以作业Shape为例,Shape为父类,父类中的计算面积getArea和计算周长getPerimete两个方法是每个子类都要调用的,因此这两个方法可以用protected修饰。

1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?



答:不会成功,出现两个错误。1.提示Employee cannot be resolved to a type,意思为无法解析这个类型,原因是employee类在另一个包中,在本包调用需要import test1.Employee;。2.提示the method clone()from the type Employee is not visible,出现这个错误的原因是因为clone这个方法是用protected修饰的,protected修饰的方法只允许在同一个包中或本类和继承的子类中调用,要使clone能被调用应该把clone方法用public修饰。

使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2

仅需粘贴关键代码与运行结果,图片不要太大。

使用匿名类与Lambda表达式改写,并使用Arrays.sort

```
Comparator NameComparator=(o1,o2)->o1.getname().compareTo(o2.getname());
Comparator AgeComparator=(o1,o2)->o1.getage()-o2.getage();
Arrays.sort(per, NameComparator);
Arrays.sort(per, AgeComparator);
```

运行结果

![](http://images2015.cnblogs.com/blog/1109692/201704/1109692-20170401193241102-1424574047.png)

分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?

Comparator<Shape> shapeComparator = new  Comparator<Shape>() {
@Override
public int compare(Shape o1, Shape o2) {
//你的代码
}
};
答:这里使用了匿名内部类,shapeComparator类实现了Comparator接口。

GUI中的事件处理

4.1 写出事件处理模型中最重要的几个关键词。

答:事件、事件源、事件监听器(ActionEvent、ActionListener)

4.2 使用代码与注释,证明你理解了事件处理模型。

\\
public class MainGUI {
public static void main(String[] args) {
JFrame f = new JFrame("Test");//新建一个JFrame容器
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认关闭行为
JButton b = new JButton("Press Me!");//事件源
b.addActionListener(new ButtonHandler());//注册监听器
f.add(b);
f.setSize(200, 100);
f.setVisible(true);
}
private static class ButtonHandler implements
ActionListener{//监听器
public void actionPerformed(ActionEvent e) {
System.out.println("Action occurred");
System.out.println(e.getSource());//获得事件源
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String x= a.getText();//获得文本框信息
String y= b.getText();
new Menu().setVisible(true);//新建另一个页面
}
}

结对编程:面向对象设计(大作业2-非常重要,未完成-2)

继续完善上周的项目作业。考核点如下:

5.1 尝试使用图形界面改写。







5.2 给出两人在码云上同一项目的提交记录截图。

5.3 与上周相比,项目的主要改动是什么?

答:该项目由晓娴和凯欣共同完成,之前项目的输入只能在控制台输入,本周学习GUI之后把项目中的输入格式改成利用图形界面来输入,但具体功能的实现还未完善。

3. 码云上代码提交记录及PTA实验总结

3.1. 码云代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

3.2. PTA实验

函数(选做:4-1)、编程(5-3, 5-4)

一定要有实验总结

答:5-3 提交到PTA显示部分正确,原因是忽略了输入的值的数目大于栈的长度的情况。
5-4 这题比较简单,主要就是考察静态内部类,注意静态方法只能调用静态属性,非静态不能调用,创建内部类之前要先创建外部类。

201521123034《Java程序设计》第六周学习总结的更多相关文章

  1. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  2. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  3. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  4. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  5. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  6. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  7. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

  8. 20175209 《Java程序设计》第九周学习总结

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

  9. 20175313 张黎仙《Java程序设计》第九周学习总结

    目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...

  10. 20175317 《Java程序设计》第九周学习总结

    20175317 <Java程序设计>第九周学习总结 学前准备 首先下载XAMPP,下载完成后打开: 将前两个选项打开 在IDEA中配置驱动mysql-connector-java-5.1 ...

随机推荐

  1. django开发者模式中的autoreload是怎样实现的

    在开发django应用的过程中,使用开发者模式启动服务是特别方便的一件事,只需要 python manage.py runserver 就可以运行服务,并且提供了非常人性化的autoreload机制, ...

  2. SpringMVC 初级操作

    SpringMVC介绍 SpringMVC也叫Spring Web MVC,属于表现层框架. SpringMVC属于Spring框架的一部分,是在Spring3.0后发布的. Spring结构图: S ...

  3. Obj-C 实现 QFileDialog函数

    Obj-C 实现 QFileDialog函数(getOpenFileName/getOpenFileNames/getExistingDirectory/getSaveFileName) 1.getO ...

  4. 纯JSP实现用户登录注册,记事本

    没有美化,没有格式,没有样式 1.JSP登陆注册 将用户注册的信息保存在application对象中,用于登录时的验证. 首页如下: 如果未登录,在  session 中找不到 currentUser ...

  5. 接口的作用(C#)

    C#中的接口(Interface)对于很多初学者来说是个很容易迷糊的东西,使用起来很简单,无非就是定义接口,接口里面包含一些属性.索引器.事件和一些没有修饰符的方法,也没有方法的具体实现代码:然后在类 ...

  6. Fiddler过滤会话

    Fiddler每次打开的时候都会打开十多个会话,期望只想抓取自己想要的请求.   1)User Filters:启用过滤器 2)在Filers面板中勾选"Use Filters", ...

  7. java之http协议

                                 HTTP协议 自从入坑以来,只要是跟web打交道,总是免不了这个HTTP协议,这是什么鬼,让我们一探究竟.(不周之处还请赐教!!!) 既然是协 ...

  8. Hive调优实践

    1 文件格式的选择 ORC格式确实要比textFile要更适合于hive,查询速度会提高20-40%左右 例子1: youtube1的文件格式是TextFIle,youtube3的文件格式是orc h ...

  9. js中的访问器属性中的getter和setter函数实现数据双向绑定

    嗯,之前在读js红宝书的时候,在对象那一章有介绍属性类型.第一种数据类型指的是数据属性,第二种是访问器属性.在初识vue的时候,其双向数据绑定也是基于访问器属性中的getter和setter函数原理来 ...

  10. 2017-04-21周Java学习笔记

    2017-04-21-周Java学习笔记... -------------------------------------- 计算机起源于:战争中的炮弹轨道计算.Unix操作系统是使用C语言编写的操作 ...