20172325 2017-2018-2 《Java程序设计》第七周学习总结
20172325 2017-2018-2 《Java程序设计》第七周学习总结
教材学习内容总结
- 1、创建子类
(1) 子类是父类更具体的版本,但子类的实例化不依赖于父类;
(2) 继承有单项性,父类的对象不能调用子类的方法; - 2、protected修饰符
(1)为了解决在子类中不能声明父类中公共变量的问题,提供了这种选择;
(2)封装性:private>protected>public;
(3)在这种修饰符下构造方法不会被继承; - 3、super引用
(1)使用super引用可以调用父类的构造方法;
(2)父类构造方法改变的同时,子类也需要改变; - 4、多继承
(1)java不支持多继承
(2)java依赖接口提供多继承的最好特性而不会增加歧义性; - 5、重写方法
(1)当子类和父类有相同的方法名和签名时,子类方法将重写父类的方法,子类的优先;
(2)重写内容只用于子类,不改变父类里的方法,也可以用super引用再次调用父类的方法;
(3)用final修饰符定义一个方法,子类不能重写该方法;
(4)方法重写在体现多态性时更为重要。 - 6、原则上避免使用影子变量。
- 7、类层次结构
(1)一个父类的子类可以是他自己子类的父类,层次结构由此建立,类似于tree的结构;
(2)最大化了复用现有类的可能性;
(3)要始终保持父、子类之间“是”的关系;
(4)应当合理的将类的公共特性保持在尽可能高的类层级上。 - 8、Object类
(1)所有的类都由Object类派生,也就是说所有的类都是Object类的子类;
(2)Java程序的每一个类都继承toString方法和equals方法 - 9、接口层次结构
类的继承和接口的继承不能重叠,即接口不能用于派生新类,类不能用于派生接口,仅当一个类设计为实现一个接口时,这个实现类和接口之间才有交互。
教材学习中的问题和解决过程
- 问题1:在上周的博客里,小助教对其中一个问题进行了提问,促使我对foreach语句和for语句进行了更加深入的探究。
- 问题1解决方案:经过多方面的查找资料和程序实践,我得到了较为完善的概念和区别,

总结如下:
(1).如果只是遍历集合或者数组,用foreach好些,快些。
(2).如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。
(3).总的来说,当你想要对很多变量进行相同的操作时,foreach是较为简单快捷的;而当你想要更加精确具体的控制很多变量进行不同操作时,for语句将会是更好的选择。
- 问题2:在学习super引用的时候看到课本上提到了super引用类似于this引用,这让我想到了问题一的差别,于是进行了一下查阅
问题2解决方案:

- 问题3:java不支持多继承,但是后面又讲到了类层次结构,既然不可以多继承为什么还存在类层次结构?
问题3解决方案:在和助教讨论之后,发现是我的理解出现了问题,多继承指的是一个类继承了很多类,即一个子类有多个父类;而类层次结构指的是一个父类有多个子类;举一个不恰当的例子就是,对于java来说,就如同父亲和儿子的关系,一个父亲可以有多个儿子,但一个儿子不可能有多个有血缘关系的父亲。(这种情况只针对java,其他的编程系统可能允许这种情况。)
代码调试中的问题和解决过程
- 问题1:在上上次的博客中我记录了一种问题,当时助教给出了解释,但是自己没有理解清楚,这次又遇到了相同的问题
问题1解决方案:这次我认真的查了资料,问了结对的同学,终于知道问题所在,其实很简单,就是因为我把对象和类搞混了,导致了类里面没有main方法,无法运行。调整之后就成功了
;
还有一种情况是一开始在t包下创建了一个类,后面改了类名,把类名改成其他名字,之后运行下,就报这样的错误,这是因为一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必须与之一致,否则无法编译,如果源文件中没有一个public类,则文件名与类中没有一致性要求。问题2:在一次休眠虚拟机的时候出现了卡顿,就一直卡着不动,后来强制退出,在启动的时候就不能正常启动了,而是进入了下面的界面

- 问题2解决方案:我尝试把电脑关机和重启,这能解决大部分电脑问题,但是这次没有成功,然后我看到了郭凯同学的博客,说不定能够有所帮助,可是输入命令行的结果是“Can't find 'sudo'. ”这就没有办法了。在我第二天我又试了一次无果之后,准备去找王老师的时候,敲门不在,我低头一看,虚拟机正常打开了,所以......谢谢王老师。但是为什么会出现这种情况现在还是不知道什么原因。
...
代码托管


上周考试错题总结
- 1、The "off-by-one" error associated with arrays arises because
A .the first array index is 0 and programmers may start at index 1, or may use a loop that goes one index too far
B .the last array index is at length + 1 and loops may only iterate to length, missing one
C .the last array element ends at length - 1 and loops may go one too far
D .programmers write a loop that goes from 0 to length - 1 whereas the array actually goes from 1 to length
E .none of the above, the "off-by-one" error has nothing to do with arrays
解析:索引值必须大于等于0并且小于数组的元素个数。如果数组中有X个元素,则索引值是0~X-1. - 2、Assume that BankAccount is a predefined class and that the declaration BankAccount[ ] firstEmpireBank; has already been performed. Then the following instruction reserves memory space for
firstEmpireBank = new BankAccount[1000];
A .a reference variable to the memory that stores all 1000 BankAccount entries
B .1000 reference variables, each of which point to a single BankAccount entry
C .a single BankAccount entry
D .1000 BankAccount entries
E .1000 reference variables and 1000 BankAccount entries
解析:第一次银行帐户;为firstentity银行保留内存空间,它本身是指向BankAccount[]对象的引用变量。第一次银行账户=新银行账户[1000];实例化BankAccount[]对象为1000个BankAccount对象。 - 3、If an int array is passed as a parameter to a method, which of the following would adequately define the parameter list for the method header?(如果一个int数组作为参数传递给方法,下面哪个选项可以为方法头定义参数列表?)
A .(int[ ])
B .(int a[ ])
C .(int[ ] a)
D .(int a)
E .(a[ ])
解析:选择C,参数被定义为变量最初被声明为类型参数名称。 - 4、Given the following declarations, which of the following variables are arrays?(给定以下声明,下列哪个变量是数组?)
int[]a、b;
int c,d[];
A .a
B .a and b
C .a and d
D .a, b and d
E .a, b, c and d
解析:选择D,第一个声明声明a和b都是int数组。第二个声明声明c和d是int型,但d是一个int数组,c是变量。a b和d都是int数组。 - 5、A Java main method uses the parameter (String[ ] variable) so that a user can run the program and supply "command-line" parameters. Since the parameter is a String array, however, the user does not have to supply any parameters.
A .true
B .false
解析:在java命令之后,在命令行输入的任何内容都将被接受为命令行参数。如果是由空格分隔的几个单词,那么每个单词都作为一个单独的字符串数组元素存储。 - 6、An array index cannot be a float, double, boolean or String.
A .true
B .false
解析:数组索引必须是int类型,或者可以扩展为int类型的值(因此,char、byte和short也是允许的)。 - 7、If a and b are both int arrays, then a = b; will
A .create an alias
B .copy all elements of b into a
C .copy the 0th element of b into the 0th element of a
D .return true if each corresponding element of b is equal to each corresponding element of a (that is, a [0] is equal to b [0], a [1] is equal to b [1] and so forth) and return false otherwise
E .return true if a and b are aliases and return false otherwise
解析:“=”是一个赋值运算符。如果这两个变量都是基元,那么左边的变量会得到右边变量的副本(所以如果a和b是int值并且b = 5,那么a就变成5)。但是,由于a和b是数组,所以引用变量a被设置为引用变量b,导致a和b引用内存中的同一个数组,或者它们现在是彼此的别名。
结对及互评
点评模板:
- 博客中值得学习的或问题:
- 刘辰同学对课本的理解很到位,是很细致的类型,对于书上的概念理解的很清楚,有哪一个字眼不清楚她会追究到底,这样一来对知识点的掌握就能够很充分了。
- 代码上面的实践很到位
- 一点点不足:
- 刘辰同学在编程的时候思路上会有一定的局限性,就是说思路可能不是特别灵活,希望能够多多尝试。
基于评分标准,我给本博客打分:8分
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 129/129 | 1/1 | 20/20 | |
| 第二周 | 359/488 | 1/2 | 18/38 | |
| 第三周 | 521/1009 | 2/4 | 22/60 | |
| 第四周 | 1057/2066 | 1/5 | 30/90 | |
| 第五周 | 636/2702 | 1/6 | 30/120 | |
| 第六周 | 489/3191 | 1/7 | 28/158 | |
| 第七周 | 831/4022 | 1/8 | 41/199 |
参考资料
20172325 2017-2018-2 《Java程序设计》第七周学习总结的更多相关文章
- 201521123027 <java程序设计>第七周学习总结
1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...
- 20172325 2017-2018-2 《Java程序设计》第九周学习总结
20172325 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 异常 1.学习了异常的基本概念: 2.区分异常与错误: 一个异常是指一个定义非正常情况或错误 ...
- 20172325 2018-2019-2 《Java程序设计》第九周学习总结
20172325 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 图的定义 图是由顶点集(VertexSet)和边集(EdgeSet)组成,针对图G,顶点集和 ...
- 20172325 2018-2019-1 《Java程序设计》第二周学习总结
20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...
- 20172325《Java程序设计》第一周学习总结
20172325<Java程序设计>第一周学习总结 教材学习内容总结 第一章 1.1软件质量 软件工程是一门关于高质量软件开发的技术和理论的学科. 高质量软件的特征 1.2 数据结构 软件 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
随机推荐
- 使用 SignalR与SSE(Sever sent event)向客户端推送提示信息
最近有个项目想把c/s的代码转成mvc的,这听起来并不困难. 如果UI和业务逻辑良好分离了的话,不会花太多的功夫,应该多数的内容都能重复利用. 但在实际的操作过程中,发现业务逻辑代码和UI提示全是混在 ...
- openx _金额
1/work/openx/lib/max/Delivery/log.php MAX_Delivery_log_logAdImpression MAX_Delivery_log_logAdRequ ...
- 10. 数据模型(ER图)转为sql脚本,要求导出的字段都是大写的
1.进入Tools-->Execute Commands-->Edit/Run Script,执行以下脚本即可实现所有字段转为大写; Option Explicit ValidationM ...
- 65. sqlserver执行存储过程实例
declare @param varchar(500)exec sp_PUB_GetFlowStatus @ret output,10011,88,1,12print @ret
- zabbix配合脚本监控Kafka
简介: Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据.Kafka如下特性,受到诸多公司的青睐. 1.高吞吐量:即使是非常普通的硬件Kafka也可以支持 ...
- YII assets使用
为什么用YII assets 1.assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问protected下面的文件 ,但是我们又希望将module单独出来,所以需要使用发 ...
- VB6 内存释放
VB在内存释放方面是这样的, 首先和其他任何语言一样,如果是在stack分配的空间的话,操作系统自动进行管理 比如下面的语句 dim a as string '当a 超出它的作用范围以后,就会被释放掉 ...
- 文件的基本操作(python)
文件打开: 1. f = open('yesterday,‘r+’,encoding = ‘utf-8’) 读取的方式加载为Utf-8 r 打开文件并写, 只适用于文字类 r+ 打开文件并读 ...
- 7 python 模块间相互导入
python在不同层级目录import模块的方法 注意,在python3里,即使目录下没__int__.py文件也能创建成功,猜应该是解释器优化所致,但创建包还是要记得加上这个文件 吧. 1.模块的分 ...
- Linux安装初始化
鸟哥的Linux 私房菜 Linux常用命令大全 http://www.cnblogs.com/yjd_hycf_space/p/7730690.html 安装看锋哥教程 可能最后网卡出错 ...