1. 本周学习总结

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

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

 1.接口不是类,不能使用new进行实例化;
2.接口可以扩展;
3.接口中可以包含常量;
4.一个类可以实现多个接口;
5.不管is-a,has-a均可体现多态;

2. 书面作业

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

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

 文件不能编译通过,错误语句为System.out.println(i);
改正后的代码及其输出结果如图:

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

 不能编译通过,提示错误如下图:

 因为Parent类的权限并不是public,要将Parent类改为public才能使之正常编译。

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

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

 改造前的代码虽然简单,但是只能从控制台输出;
使用抽象类、抽象方法虽然使代码看起来复杂,但是可以在控制台还有对话框图形界面等输入。

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

 新建一个类去继承Guess中的抽象类..(不是很清楚)

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

 当类中方法还没有具体定义,要将其抽象化时,应该使用abstract。

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

 在这个例子中,变化的是代码的环境比如控制台等等;而不变的是代码的实现功能,比如游戏的目的或者结果并不改变。

3. Comparable与Comparator

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

 Comparable接口是用来实现对实现它的某个类的对象进行整体排序。实现方法中调用了CompareTo,通过比较对象的大小来确定返回值从而实现排序。
Arrays有一方法 public static void sort(Object[] a),其对指定对象数组按升序进行排序, 数组中的所有元素都必须实现Comparable接口。

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

 Comparable接口和Comparator接口并不一样,虽然两者都可以排序和比较,但是当一个类没有实现Comparable接口的时候也可以通过Comparator来实现排序。

4. 面向接口案例分析

阅读Case-StudentDao.zip案例

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

 StudentDaoArrayImpl类:实现StudentDao中的抽象方法;
StudenDaoListImpl类:实现StudentDao中的抽象方法;
Student类:属性name;
StudentDao接口:抽象方法为 输入、查看、输出学生信息;

4.2 StudenDaoListImpl与StudentDaoArrayImpl有何区别?

 StudenDaoListImpl通过列表实现,代码量相对于StudentDaoArrayImpl来说较少,更为简洁;
StudentDaoArrayImpl通过数组实现。

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

 我认为面向接口编程就是,在一个面向对象的系统中,各个对象共同互相协作完成不同功能的编程;
面向接口编程可以将接口与实现相分离,从而大大提高程序的灵活性

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

3.1. 码云代码提交记录

3.2. PTA实验

 掌握了Comparable接口的使用,以及Arrays.sort的使用;
Comparable接口可以对所有实现了Comparable接口的对象以需要的方式进行排序;
还是觉得打代码太难没有思路,无法将书面知识熟练运用在代码里。

201521123104 《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. [HEOI2015]兔子与樱花 树规+贪心

    鬼能想到是个贪心.明明觉得是树规啊..又完美爆零.. 从叶子节点往上更新,能保证最优解(这块想了半天). 证明:当你的子树上有能删的点而你不删时,可能会对子树的根节点有利,最好的情况是使子树根节点由不 ...

  2. .NET Core 2.0 正式发布信息汇总

    万众瞩目的.NET Core 2.0终于发布了,原定于9.19的dotnetconf大会的发布时间大大提前了1个月,.NET Core 2.0/.NET Standard 2.0的正式发布是.NET ...

  3. 纯CSS实现垂直居中的7种方法

    今天申请博客通过了,给大家讲讲我所看到过的纯css实现垂直居中的各种方法.为什么要把它作为第一篇文章呢?因为这是我刚开始接触前端学到的对我最有用的知识,希望大家也可以从中获益! 在CSS中实现水平居中 ...

  4. linux 压缩解压打包工具大集合

    压缩.解压缩及归档工具有很多,今天小编就整理几个大家较为常用的. compress gzip  bzip2 xz zip tar cpio 一.压缩.解压工具 用法 压缩 工具 压缩后 压缩包格式 解 ...

  5. 一步一步学多线程-ThreadLocal源码解析

    上网查看了很多篇ThreadLocal的原理的博客,上来都是文字一大堆,费劲看了半天,大脑中也没有一个模型,想着要是能够有一张图明确表示出来ThreadLocal的设计该多好,所以就自己看了源码,画了 ...

  6. thymeleaf模板引擎入门

    ThymeLeaf是什么 Thymeleaf是一个用于服务器端的java模板引擎,它使用简单但功能强大,目前可以处理的模板类型包括:HTML.XML.TEXT.JavaScript.CSS等. 搭建t ...

  7. 第48篇 说说.Net与Java中的字符串

    原文地址:http://blog.laofu.online/2017/08/18/String-In-dotnet-Java/ Java字符串碰到的问题 在写Java程序碰到一个问题,而正是这个问题引 ...

  8. 前端应该知道的Web Components

    前端组件化的痛点 在前端组件化横行的今天,确实极大的提升了开发效率.不过有一个问题不得不被重视,拟引入的这些html.css.js代码有可能对你的其他代码造成影响. 虽然我们可以通过命名空间.闭包等一 ...

  9. 关于Thread类的简单使用

    线程:线程也被称为轻量级进程,进程和线程都提供一个执行环境,但创建一个新的线程比创建一个新的进程资源要少得多 线程存在进程里,也就是说一个进程至少包括一个线程 线程共享进程的资源,包括内存和打开的文件 ...

  10. Basic Skill

    Get current script path script=$() Check for root user ] ; then echo "current user is not root ...