1. 本周学习总结

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

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

答:我开始做笔记了,在本周学习中的一些笔记

* abstract关键字是为了实现接口或继承抽象类避免歧义而存在的。

* 当定义一个实现接口的类时,编译器只要检测到类中有一个用abstract的方法,就会自动在类的前面添加abstract。

* 接口不是类不能用new实例话。

2. 书面作业

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

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

答: 不能编译通过,这句会出错,因为父类的i是不可见的,。这边可改成protected。

运行结果如下:1 2 2 1 1 2 1。

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

答: 不能编译通过。父类parent不是用public修饰的。

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

答:protected的属性和方法只能在同一个包的情况下访问,或者用继承的方法访问。

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

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

答:抽象类不需要实现方法体,可实现多态,

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

答:那么应该设计一个表格类输出表格,然后输入数字,输出正确答案。

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

答:编写Guess子类的方法不需要实例化时,需要同种方法多种实现即多态时,实现接口避免歧义时使用abstract。

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

答: 变化的是改造后定义的是抽象类,abstract使得类的方法不需要实例化,抽象类应该尽可能的有多的共同代码。

3. Comparable与Comparator

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

答:对指定对象数组比较;因为实现了Comparable的类都有comparaTo方法比较得到升序排序。

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

         答:Comparable 定义在 Person类的内部,Comparator 是定义在Person的外部。

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

4. 面向接口案例分析

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

4.2 StudenDaoListImpl与StudentDaoArrayImpl有何区别?

答:共同之处:他们都实现了studentDao,也具体实现了接口中所有的方法,区别在于一个使用列表实现的,一个使用数组实现的。

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

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

         答:既然不能照搬百度上的,那我就随意说下我的理解:

接口是什么?接口是一系列方法的声明,但这些方法并没有在接口就具体编程实现,所以接下来的类StudentDaoArrayImpl和类StudenDaoListImpl就要去编程实现具体的方法,这就是面向接口编程。

面向接口编程的好处:首先我认为就是不同的类可以有不同的实现,再就是可以用抽象类,最后是方便扩展,可维护性强。

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

3.1提交记录

3.2PTA实验总结

实验太难,不会

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

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

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

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

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

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

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

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. SolrCloud(一)搭建Zookeeper

    搭建Zookeeper 三台服务器: AMouse: 192.168.3.201 BCattle : 192.168.3.202 Ctiger   : 192.168.3.203 一 下载Zookee ...

  2. cornerstone 使用报错 working copy ... is too old(format 10 created by subversion 1.6)

    1.....本来正常使用的cornerstone 突然出现这个问题 图片如下 2....解决方案,,,,也搜集了方法,,但是最后竟然就这样解决了,,完全搞不懂的解决方案啊 如图 3......如有错误 ...

  3. 在基于TypeScript的LayaAir HTML5游戏开发中使用AMD

    在基于TypeScript的LayaAir HTML5游戏开发中使用AMD AMD AMD是"Asynchronous Module Definition"的缩写,意思就是&quo ...

  4. 专业辟谣----ThinkSNS不仅仅是微博程序!

    [摘要]ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+. ThinkSNS这个词,第一眼应该想到的 ...

  5. 移动端为何不使用click而模拟tap事件及解决方案

    移动端click会遇到2个问题,click会有200-300ms的延迟,同时click事件的延迟响应,会出现穿透,即点击会触发非当前层的点击事件. 为什么会存在延迟? Google开发者文档中有提到: ...

  6. c# 函数简述

    函数是具有独立功能,并且能够重复使用的代码块.函数必须先声明后调用,使用函数使代码更简洁易读. 一.函数的声明与调用 1.声明格式: static 返回类型 函数名(参数类型 参数名称,参数类型 参数 ...

  7. HTML5 web存储

    既然涉及到HTML5知识,那么必定会存在一定的兼容性问题,这里就涉及到浏览器的支持情况了. 浏览器支持情况: Internet Explorer 8+, Firefox, Opera, Chrome, ...

  8. [H5]range对象的createRange方法

    range对象的extractContents()方法: extractContents() 方法删除文档内容,并以 DocumentFragment 对象的形式返回它; DocumentFragme ...

  9. Centos7安装mysql-5.7.19

    Centos7安装Mysql 一 mysql下载 地址: https://dev.mysql.com/downloads/mysql/#downloads 二 在centos7上创建安装文件存放.解压 ...

  10. mybaits接口式编程

    Mybatis是接口式编程实现对.xml中sql语句的执行,其过程如下(取自慕课网视频<通过自动回复机器人学Mybatis---加强版>): 1.加载配置信息2.通过加载配置信息加载一个代 ...