201521123110《Java程序设计》第5周学习总结

1. 本周学习总结

1.1 尝试使用思维导图总结有关多态与接口的知识点。
1109892-20170325164757986-1883994893.png

2. 书面作业

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

1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误。并分析输出结果。
不能编译通过,因为System.out.println(i)这句会出错,因为其中的i是被private修饰,如果将其改成protected修饰,则可以成功编译。其结果为:1109892-20170325165628752-1643907399.png

1.2 另外一个包中的OutOfParentPackage.java,能否编译通过?提示什么错误?分析原因。如何更改才能使之正常编译?
不能通过编译,因为OutOfParentPackage与Parent类是在两个不同的包中,而且Parent不是public类,所以要先将Parent改为public类。

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

2.1 Guess改造前代码很简单,而改造后的代码使用了抽象类、抽象方法看起来很复杂,那这样的改造到底有什么好处呢?
在还没改造之前,只能在控制台进行输出;在改造后,使用抽象类,不仅可以在控制台,也可以使用对话框图形界面等输入,操作就更多样性了。
2.2 如果想将该游戏改造成图形界面,应该进行一些什么操作?
可以再建一个图形界面的类然后去继承抽象类。
2.3 结合该例子,你觉得什么时候应该使用abstract?
abstract用于抽象类,主要是声明但还没实现其功能,当要使用时可以更灵活的变动。
2.4 重要:在这个例子中,变化的是什么,不变的是什么?尝试结合abstract、继承等概念进行说明。
变化的是游戏里执行的环境以及方法,不变的是抽象类abstract它的定义,但它本身不能提供输入输出,需要继承方法来使用。

3.Comparable与Comparator

3.1 描述Comparable接口的用途。为什么某个类实现了Comparable接口就可以直接使用Arrays.sort对其进行排序?
因为Comparable的对象都可以进行比较,而Arrays.sort就是面向Comparable接口进行编程,所以可以进行排序。
3.2 有了Comparable接口为什么还需要Comparator接口呢?
Comparator接口是对Comparable接口功能的一种补充,更能丰富Comparable接口。
3.3 可选:使用匿名内部类、Lambda表达式实现PTA编程5-2。

4.面向接口案例分析

阅读Case-StudentDao.zip案例

4.1 画出类关系图,描述每个类与接口的作用。
1109892-20170325174221455-925565912.png

4.2 StudenDaoListImpl与StudentDaoArrayImpl有何区别?
StudentDaoArrayImpl是用数组实现而且长度是固定的,而 StudenDaoListImpl是用ArrayList实现且是动态的。

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

面向接口编程就是代码要与接口相关联(例如课堂上学的Comparable接口),而不需要考虑怎么去实现即将方法的声明与实现隔离开。只要某个类实现了相关的接口,我们编写的面向接口的代码就可以适用,当要修改某个模块时,不必对其他模块进行大改动所以这样就方便灵活许多。

6.结对编程:面向对象设计(大作业2-非常重要)

内容:使用Java代码完成上周做的面向对象设计大作业,需要有初步界面。实现的功能尽量简单,少而精,只包含必要的功能,不要追求高大全。
写出:类图(尽量精简,不用太多子类,两个即可)、系统常用功能描述、关键代码与界面
形式: 两人依托码云合作完成。请在这里贴出你们的学号、姓名与任务分工。
注意: 再过几次课要讲Java图形界面编程,到时候要将该系统升级为图形界面。系统的业务逻辑部分应该变化不大,变化大的是输入与输出部分。所以编码的时候,输入(Scanner)与输出(System.out)的代码,请不要将其与某个业务处理函数绑死。
选做加分: 给出两人在码云上同一项目的提交记录截图,额外加分。注:两个人在码云上新建一个项目。

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

1109892-20170325180240768-1358361038.png

PTA实验总结:这次问题主要是实现Comparable接口,实现先对name升序排序,假如name相同则再对age进行升序排序;因为要用Arrays.sort进行排序,所以要有覆盖compareTo()的方法。接口还是算比较实用的一种方法。

转载于:https://www.cnblogs.com/zcjj/p/6596159.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python中正则表达式讲解

正则表达式是匹配字符串的强大武器,它的核心思想是给字符串定义规则,凡是符合规则的字符串就是匹配了,否则就是不合法的。在介绍Python的用法之前,我们先讲解一下正则表达式的规则,然后再介绍在Python中如何运用。 如果…

电源适配器上各符号的意义都清楚吗?

现在家里的电子产品是越来越多了,比如:手机、平板、笔记本、智能电视、智能音箱、路由器、剃须刀等;机身或者充电器上都有很多符号标志。 有没有好奇过或者被小孩询问过,这些符号标志都是什么意思呢?只有读懂这些符号…

苏宁海量服务器自动化配置运维实践

运维的演进 人力运维阶段 在IT产业的早期,服务器运维是通过各种Ad Hoc命令或者Shell脚本来完成基础设施的自动化工作,这种方式对于简单,一次性的工作很方便,但是对于复杂和长期的项目,后期的脚本维护非常麻烦。自动化工…

JS小技巧

JS操作伪元素 CSS代码: #myId:before {content: "hello world!";display: block;width: 100px;height: 100px;background: red; } JS 代码: var myIdElement document.getElementById("myId"); var beforeStyle window.getCompute…

流媒体服务器

1 引言   随着互联网的飞速发展,流媒体技术的应用越来越广泛,从网上广播、电影播放到远程教学以及在线的新闻网站等都用到了流媒体技术。但现有公开文献所报道 的大多是利用现有的流媒体服务器来搭建一个流媒体服务系统,或者是针对流媒体数据的编码方式所进行的…

试产机器发现元器件损毁 风险排查过程

产品在试产阶段或者公测阶段,发现有个别机器功能异常,研发定位为个别元器件损坏; 定位过程大致有如下步骤: A-故障现象复现 B-输入输出检查 C-电源及管脚状态测量 D-交叉验证 E-基本外观观察和特性测量 然后将器件邮寄给原…

腾讯面试经验2

时间:2017年10月16日11:30面试。 地点:重庆万达艾美酒店。 信息:女,本科应届生,面试后台开发岗位。 在深圳的面试已经全部结束了,偶然间听朋友说重庆、长沙等场地的面试还在进行中,只要修改面试…

简易有效Api接口防攻击策略

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 简单…

CSS 如何设置垂直居中

1、水平居中我们都知道,可以直接用: margin:0 auto; 2、垂直居中,需要做一点小小的计算,关键代码如下: height: 600px; position: absolute; top: 50%; margin-top:-300px; 如需水平且垂直居中: height: 60…

被称为海淀妈妈四大神器之一的倾听者K3 硬件拆解

暑假期间发现很多博主都在推荐倾听者K3,被海淀妈妈们称为四大神器之一, 虽然暂没听说其他三大神器是什么,作为教育硬件爱好者还是决定先整个回来拆拆看。 在京东上搜到倾听者K3版本一共有三种颜色,分别是蓝色(悟空蓝&…

有名信号量sem_open和内存信号量sem_init创建信号量的区别

有名信号量sem_open和内存信号量sem_init创建信号量的区别 分类: C/C sem_t *sem sem_open(const char *name, int oflag, .../*mode_t mode,unsinged int value) ;int sem_init(sem_t *sem,int shared, unsigned int value);区别:1.创建有名信号量必须…

KVM虚拟机相关步骤

KVM是Kernel-based Virtual Machine的简称,是一个开源的虚拟化模块,该文档是基于CentOS 7.4环境操作的 一、操作系统安装 本文采用的是CentOS 7.4 1、查看系统版本 cat /etc/redhat-release 2、系统更新 Yum makecache &&yum update && …

dds设计信号发生器

高一 150206101 Dds数字信号发生器设计方案 DDS的工作原理框图如下 在微机内,若插入一块D/A转换卡,然后编制一段小程序,如连续进行加一运算到一定值,然后连续进行减一 运算回到原值,在反复运行该程序,则微机…

Maven--资源文件resource的问题

2019独角兽企业重金招聘Python工程师标准>>> Maven项目的目录有: src/java/main src/java/resource src/test/main src/test/resource 有的时候在resource目录下添加文件却不能加载出来,解决的办法是从把添加的资源文件添加到properties---&g…

pthread_create()创建线程最大个数

线程应用程序最常见导致创建线程失败的原因是线程栈大小的设置。创建一个新的线程,默认情况下系统为线程栈预留了2MB的寻址空间。线程栈起始于进程虚拟 内存的高端地址,并向虚拟内存底端地址方向扩展。取决于线程本身的大小以及其它线程内存分配的情况&a…

C++ Primer 5 CH4 表达式

4.1 基础 函数调用也是一种特殊的运算符,它对运算对象的数量没有限制。C 的表达式要么是左值,要么是右值。左值可以位于赋值语句的左边,右值则不可以。当一个对象被用作右值的时候,用的是对象的值;当对象被用作左值的时…

PHY以太网自动协商原理

自协商原理:自协商是通过一种叫做快速连接脉冲(Fast Link Pulse)的信号实现的,简称FLP。自协商的双方通过FLP来交换数据。 在具备自协商能力的端口没有Link的情况下,端口一直发送FLP,在FLP中包含着…

canvas--初级

摘要: canvas:默认宽高为300*150,需用canvas的API定义其宽高绘画路径以beginPath()开始,以closePath()结束常用方法fill()、stroke()、rect()、arc()、text()、lineTo()、moveTo()以下为代码: var cdocument.getElementById("mycanvas&q…

扑克牌翻牌问题(递归)

扑克牌翻牌问题 题目描述: 有52张牌,使它们全部正面朝上,从第2张开始,凡是2的倍数位置上的牌翻成正面朝下;接着从第3张牌开始,凡是3的倍数位置上的牌,正面朝上的翻成正面朝下,正面朝下的翻成正面…

以太网自动协商原理

自协商基本原理 自动协商模式是端口根据另一端设备的连接速度和双工模式,自动把它的速度调节到最高的公共水平,即线路两端能具有的最快速度和双工模式。 自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端,并接受…