1. 本周学习总结

1.1 尝试使用思维导图总结有关多态与接口的知识点。

1.2 可选:使用常规方法总结其他上课内容。

答:1. 课上讲了匿名内部类的使用,其中内部类就是定义在另一个类里面的类,与之相反包含内部类被称为外部类。

2. 定义接口不再使用class关键字,而是使用interface关键字。

3. 接口使用时用implement关键字。

2. 书面作业

1. 代码阅读:Child压缩包内源代码

1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误。并分析输出结果。

1.2 另外一个包中的OutOfParentPackage.java,能否编译通过?提示什么错误?分析原因。

1.3 回答:如果为了访问到protected修饰的属性或方法应该怎么办?


答:1.1 不能通过编译,问题开始出现在 System.out.println(i)上,它是直接调用父类的i,而i在Parent类中是private修饰符修饰,所以只能在本类中访问。修改后结果如图:

1.2 不能通过编译,提示错误为The type Parent is not visible,因为在Parent类定义时并没有写修饰符,所以就是默认,而默认的话,访问范围为本类和本包,而另一个包中访问,显然是不行的。

1.3 protected可以被子类访问。所以我可以通过子类来访问protected修饰的属性或方法。

2.abstract进阶:阅读GuessGame抽象类的设计与使用源代码

2.1 Guess改造前代码很简单,而改造后的代码使用了抽象类、抽象方法看起来很复杂,那这样的改造到底有什么好处呢?

2.2 如果想将该游戏改造成图形界面,应该进行一些什么操作?

2.3 结合该例子,你觉得什么时候应该使用abstract?

2.4 重要:在这个例子中,变化的是什么,不变的是什么?尝试结合abstract、继承等概念进行说明。


答:2.1 这个猜谜游戏改造前,未使用抽象类,只能控制台输出,而使用抽象类后可以在控制台,也可以使用对话框图形界面等输入,这就很方便,很有灵性。

2.2 那就在图形界面代码中调用猜谜游戏抽象类。

2.3 我觉得当许多需要编写的代码,共性多或者说是实现功能相同,那么编写出抽象类,可以很直观,方便的编写代码,去完成程序,防止出错等。

2.4 抽象类是限定规定子类必须实现某些方法,但不关注实现的细节,所以变化的是继承抽象类的子类,而抽象的是不会变化的。而子类继承抽象类后,就可以弄自己想要的变化。抽象类,相当于有多个子类,子类可以变,而父类不能变。

3.Comparable与Comparator

3.1 描述Comparable接口的用途。为什么某个类实现了Comparable接口就可以直接使用Arrays.sort对其进行排序?

3.2 有了Comparable接口为什么还需要Comparator接口呢?

3.3 可选:使用匿名内部类、Lambda表达式实现PTA编程5-2。


答:3.1 因为在Arrays有一方法 public static void sort(Object[] a),其功能是对指定对象数组按升序进行排序,数组中的所有元素都必须实现Compareble接口,所以反之实现了Compareble接口就可以进行排序。

3.2 有了comparable接口是需要掉用Arrays.sort来比较,而comparator接口在两个对象没有实现comparable接口是也可以进行比较。

4.面向接口案例分析

阅读Case-StudentDao.zip案例

4.1 画出类关系图,描述每个类与接口的作用。

4.2 StudenDaoListImpl与StudentDaoArrayImpl有何区别?


答:4.1

4.2 StudentDaoArrayImpl是使用数组实现的,StudenDaoListImpl是用ArraysList来实现的。

5.什么是面向接口编程?面向接口编程的好处是什么?

结合题目3与4中的Test.java的代码讨论分析。不要百度原封不动照搬!


答:所谓面向接口编程,就是代码与接口相关联的(比如Comparable接口),而不需要考虑具体的实现类。只要某个类(如Employee)实现了相关的接口(如Comparable),我们编写的面向接口(如Comparable)的代码就可以适用。 其中Test在我看来非常的清楚,并不会觉得混乱。会显得很有条理,有条不絮。

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

题目集:jmu-Java-04-面向对象2-进阶-多态接口内部类

3.1. 码云代码提交记录

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

截图如下:

3.2. PTA实验

继续完成前面未完成的实验面向对象1-基础-封装继承

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

一定要有实验总结

答:1. 在编程时并没有搞懂Array.sort与comparable的联系,所以还需要加深知识的积累。

2.在使用抽象类时总会不自觉的写成内部类。并没有重新再包里创建一个新类来运行,这是不对的。

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

  1. 201521123025<java程序设计>第五周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...

  2. Java程序设计第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. ios 加密

    0728 加密 MD5加密 可解 因为有MD5库 但是可以通过 加盐(也就是拼接字符串  在进行加密)的方法进行加密这样在解得时候就不会那么容易 也可以使用时间戳 进行加盐 加密 时间戳 可只用到分钟 ...

  2. hdu 6121---Build a tree(深搜+思维)

    题目链接 Problem Description HazelFan wants to build a rooted tree. The tree has n nodes labeled 0 to n− ...

  3. js实现轮播图动画

    在网页浏览中,可以看到轮播图是无处不在的,这是一个前端工程最基本的技巧.首先看看几个网页的呈现的效果. QQ音乐: 网易云音乐: 天猫: 接下来将从简到难总结几种实现轮播图的方法. 1.样式一:鼠标滑 ...

  4. 正则表达式(即:匹配模式Pattern)

    通过学习<正则表达式-Regular-Expression-Tutorial.pdf>这份文档,对正则表达式有了很好的了解,原因只有1个--这份文档写得太好了. 它的下载地址是:http: ...

  5. 浅析MySQL中的Index Condition Pushdown (ICP 索引条件下推)和Multi-Range Read(MRR 索引多范围查找)查询优化

    本文出处:http://www.cnblogs.com/wy123/p/7374078.html(保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误 ...

  6. C++跨平台使用(安卓,iso等)

    1 C#调用C++接口总结 http://www.cnblogs.com/xtblog/p/5729541.html 2 java调用C++接口 http://www.cnblogs.com/liul ...

  7. 01-artDialog4.1.7常用整理

    关闭弹出框的几种常见方法: 1,artDialog可以通过鼠标双击关闭对话框,esc关闭对话框等.为了在关闭对话框要执行某一方法,不能仅仅在弹框中的关闭按钮中写.这时提供了一个函数:close.无论在 ...

  8. 解读java同步类CountDownLatch

    同步辅助类: CountDownLatch是一个同步辅助类,在jdk5中引入,它允许一个或多个线程等待其他线程操作完成之后才执行. 实现原理 : CountDownLatch是通过计数器的方式来实现, ...

  9. 网络与WEB 编程

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Helvetica; color: #29556f } 作为客户端与HTTP 服务交互 问题: ...

  10. easyUI自带的时间插件日期选择、月份选择、时间选择的使用(转)

    1.日期选择 只要将class设置成easyui-datebox就可以了,当然前提是已经应用了easyui的js <input type="text" class=" ...