20172330 2017-2018-1 《Java程序设计》第七周学习总结
学号 2017-2018-1 《程序设计与数据结构》第七周学习总结
教材学习内容总结
这一章主要是对继承的学习:
- 继承是组织和创建类的基本技术,概念简单但影响重大,决定着面向对象软件的设计方法,并增强了已设计类在软件开发中的复用性。
- 类建立了对象的特征和行为,但并没有为声明的变量预留内存空间;类是一种设计,而对象是该设计的具体实现。
- 继承具有单向性。
- 可见性修饰符用于控制对类成员的访问,这种控制也延伸到继承的过程中。但构造方法不会继承。
- super引用是调用父类构造方法,也可以引用父类的其他变量和方法。
- Java的继承方法称为单继承,而一些面向对象语言允许子类有多个父类,这种方法称为多继承,对需要用两种类描述对象时候是有用的。
- 虽然一个Java类只能由一个父类派生,但是它可以实现多个借口,因而可以用一种特殊的方式与继承一个父类核心信息的类交互。
- 方法重写是面向对象设计中的一个关键机制,允许两个有继承关系的对象按同名规则使用同名方法。.
- 一个类的子类还可以是一个或多个其他类的父类,因此建立起类层次结构。
- 在Java中,所有的类归根到底都由Object类派生。每一个类都继承toString方法和equals方法。
- 抽象类在类层次结构中代表一般性概念。抽象类1通常含有一个或多个尚未定义的抽象方法,不能被实例化。
- 由抽象类派生的子类必须重写所有父类的抽象方法,否则该子类依然是抽象类。
- 继承的概念可以应用到接口,以便由一个接口派生到另一个接口。
- 父类的私有成员也被子类继承,虽不能以成员名直接地访问这些私有成员,但可以间接地访问。
教材学习中的问题和解决过程
- 问题1:super的引用,课本上对此的解释并没有很多
- 问题1解决方案:于是在百度之后,对于原文的一句话记忆犹新
·this通常指代当前对象,super通常指代父类·
如果你想引用父类的某种东西,则非super莫属,主要作用为:
1:主要存在于子类方法中,用于指向子类对象中父类对象。
2:访问父类的属性
3:访问父类的函数
4:访问父类的构造函数
super只能在有对象的前提下使用,不能在静态上下文使用。 - 《java中super的用法》
- 问题2:三种可见性修饰符的了解、
问题2解决方案:百度后对彼此的用途有了了解
由此可以得出private可见性最严格,public可见性最弱,protected可见性位于两者之间
代码调试中的问题和解决过程
- 问题1:在定义MonetaryCoin类的时候,因为涉及硬币面值刚开始在定义时用了int型,后来因为存在0.5的存在,导致出了问题
- 问题1解决方案:在我将定义修改之后问题得到解决
代码托管
上周考试错题总结
1.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如果是两个变量,则把右边变量的值赋给左边变量。②a和b如果是两个数组,导致a和b都在存储器中引用相同的数组,因此它们现在是彼此的别名。2.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
分析:声明方式有四种模式:①int[] a,b ②int[] a ③int d[] ④int c,d[]3.In Java, an array can only store one type of data. For instance, you cannot create an array that stores both double and String values.
A . true
B . false
分析:数组被称为同构类型。这意味着存储在阵列中的值的类型必须对每个元素都是相同的。类型由声明决定。所以,int x只让x成为int值的数组。所以,没有数组可以同时存储双精度数和字符串。4.Consider the array declaration and instantiation: int[ ] arr = new int[5]; Which of the following is true about arr?
A It stores 5 elements with legal indices between 1 and 5
B It stores 5 elements with legal indices between 0 and 4
C It stores 4 elements with legal indices between 1 and 4
D It stores 6 elements with legal indices between 0 and 5
E It stores 5 elements with legal indices between 0 and 5
分析:数组的实例化了一个int值,表示它们的大小,或者它们可以存储的元素的数量。arr可以存储5个元素。此外,所有数组从索引0开始,然后到索引大小- 1,因此arr的法律索引为0到4。5.If int[ ] x = new int[15]; and the statement x[-1] = 0; is executed, then which of the following Exceptions is thrown?
A IndexOutOfBoundsException
B ArrayIndexOutOfBoundsException
C NegativeArraySizeException
D NullPointException
E ArithmeticException
分析:数组索引超出范围,因为数组索引只能在0到14之间。-1是一个非法的指数,因为它是越界的。一个人可能期望答案是C,但是如果一个数组被用一个负数的元素来声明,那么就会抛出NegativeArraySizeException,比如int[] x = new int[-5];6.The statement int[ ] list = {5, 10, 15, 20};
A adds 4 int values to array list
B initializes list to have 20 int values
C initializes list to have 4 int values
D declares list but does not initialize it
E causes a syntax error because it does not include "new int[4]" prior to the list of values
分析:如果一个数组实例化了它要存储的值列表,那么它就不需要用新的保留字来实例化。因此,list = {5, 10, 15, 20};将已初始化的5、10、15、20的值组成4个int值数组。注意,这个数组是一个4个值的数组,因此,list[n]对于任何n以外的值(0、1、2或3)都将导致抛出异常。7.To declare a three-dimensional int array called threeD, which of the following would you use?
A int[3] threeD;
B int[ , , ] threeD;
C int[ ][ ][ ] threeD;
D int [ [ [ ] ] ] threeD;
E int[ ] threeD[3];
在Java中,只能声明一维数组。要创建一个二维数组,必须将其声明为数组数组。三维数组是数组数组的数组。正确的表示法是在序列中使用多个[]标记来声明数组的类型,就像在二维数组或int[][]中使用一个三维数组那样。
结对及互评
点评模板:
- 博客中值得学习的或问题:
- 图片和文字相结合,方便理解。
- 增加了博客中的目录,方便查看,同时样式进行了更新,显得更加美观
- 阅读了许多资料,使得博客更有说服力。
- 代码中值得学习的或问题:
- 在做实验二时他采用了较为简便的方法,并对不理解的地方有了自己的尝试。
- commit依旧很详细,有条理性。
点评过的同学博客和代码
- 本周结对学习情况
- 20172333
- 结对学习内容
- 学习第九章pp项目。
- 学习继承的具体内容
- 对于实验二一起进行探讨。
其他(感悟、思考等,可选)
这周相较于上周的课后习题有所简单,但还是应该花费很多时间去课本,只有把课本知识搞懂,才能更好的去做项目。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 180/180 | 2/2 | 20/25 | |
第二周 | 312/414 | 2/4 | 20/45 | |
第三周 | 557/971 | 1/5 | 25/70 | |
第四周 | 1217/2242 | 2/7 | 44/114 | |
第五周 | 734/2976 | 1/8 | 24/138 | |
第六周 | 523/3509 | 1/9 | 20/158 | |
第七周 | 697/4206 | 1/10 | 24/182 |
计划学习时间:20小时
实际学习时间:24小时
改进情况:
这周对于课后练习做的没有那么吃力,但还是存在一些对于类的编写的问题,希望继续加油。
参考资料
20172330 2017-2018-1 《Java程序设计》第七周学习总结的更多相关文章
- 201521123027 <java程序设计>第七周学习总结
1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...
- 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 ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
- 20175209 《Java程序设计》第九周学习总结
20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...
随机推荐
- morphia 框架 mongodb内嵌查询
mongodb中存储的文档格式如下,实现查询fromdata下did和dvid为指定值的数据 { "_id": { "$oid": "553f4a9f ...
- PHP使用阿里大鱼发送短信验证
目前,基本上所有的网站注册都要求手机绑定,并通过下发短信验证码方式验证手机的真实性,提高了用户的真实性.但是一般企业单独申请短信行业通道都比较困难,因此选择一家信誉好,稳定性.及时性强的第三方短信通道 ...
- ubuntu下的python请求库的安装——Selenium,ChromeDriver,GeckoDriver,PhantomJS,aiohttp
Selenium安装: pip3 install selenium ChromeDriver安装: 在这链接下载对应版本:https://chromedriver.storage.googleapis ...
- MySQL集群-PXC搭建以及使用innobackupex工具进行全局备份和增量备份
环境:centos7 vm1:10.154.47.236 vm2:10.154.52.189 vm3:10.105.12.50 目的:pxc使用三个节点构建mysql集群,使用innobackupex ...
- ruby基础知识之 class&module
以下分别介绍了class方法和module方法,还有最简单的def方法. 其中module和class的区别下面会说,这里首先声明,def定义的方法,需要定义对象后才能调用,而class和module ...
- 【面试必问】python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别
[面试必问]python实例方法.类方法@classmethod.静态方法@staticmethod和属性方法@property区别 1.#类方法@classmethod,只能访问类变量,不能访问实例 ...
- 指针小白:修改*p与p会对相应的地址的变量产生什么影响?各个变量指针的长度为多少?
这两天敲代码碰到了一个这样的问题 代码如下: #include <stdio.h> #include <stdlib.h> int main() { ; int* p=& ...
- ISAP学习笔记
学完了ISAP,感觉心情舒畅,毕竟ISAP比Dinic好一点. 说到底ISAP其实是Dinic(不熟悉Dinic的人去我的博客找猴子课堂----最大流与最小割(看看思想),已经置顶)优化版,熟悉的人知 ...
- go学习笔记-反射(Reflection)
反射(Reflection) 反射是利用reflect包实现的 反射可大大提高程序的灵活性,使得interface{}有更大的发挥余地 反射使用TypeOf和ValueOf函数从接口中获取目标对象信息 ...
- sas简单使用
1 数据存取: 逻辑库: libname 自己起的名字 ‘文件所在的路径’,若无这步数据则存在默认的work中. 另一个方法在sas里自己建立一个逻辑库,但是关闭后就消失了. 新建数据:data ...