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程序设计》第七周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第七周学习总结

    1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...

  2. 20172325 2017-2018-2 《Java程序设计》第九周学习总结

    20172325 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 异常 1.学习了异常的基本概念: 2.区分异常与错误: 一个异常是指一个定义非正常情况或错误 ...

  3. 20172325 2018-2019-2 《Java程序设计》第九周学习总结

    20172325 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 图的定义 图是由顶点集(VertexSet)和边集(EdgeSet)组成,针对图G,顶点集和 ...

  4. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

  5. 20172325《Java程序设计》第一周学习总结

    20172325<Java程序设计>第一周学习总结 教材学习内容总结 第一章 1.1软件质量 软件工程是一门关于高质量软件开发的技术和理论的学科. 高质量软件的特征 1.2 数据结构 软件 ...

  6. 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

  7. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

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

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

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

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

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

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

随机推荐

  1. python3一个简单的网页抓取

    都是学PYTHON.怎么学都是学,按照基础学也好,按照例子增加印象也好,反正都是学 import urllib import urllib.request data={} data['word']=' ...

  2. div+css样式命名规则,值得收藏

    div+css样式命名规则,值得收藏 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:w ...

  3. linux 使用随笔

    目录:1,ab命令 一,ab命令 ab网站压力测试命令的参数.输出结果的中文注解 ab命令是Apache的Web服务器的性能测试工具,它可以测试安装Web服务器每秒种处理的HTTP请求. 来自: ht ...

  4. 5. window.location.href/replace/reload()--页面跳转+替换+刷新

    1.window.location=url; window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面. 一.最外层top跳转页面,适合用于iframe框架集 ...

  5. Node MonGoDb 简单的增删改查

    let MongoClient = require("mongodb").MongoClient; let url = "mongodb://192.168.200.10 ...

  6. leetcode415

    public class Solution { public string AddStrings(string num1, string num2) { //判断num1和num2的长度,进行对齐 i ...

  7. Spring MVC 自定义类型转换器

    新建一个自定义转换器 import org.springframework.core.convert.converter.Converter; import org.springframework.s ...

  8. as3 文档类引用

    /**文档类引用**/ public static var main:CoverMain; public function CoverMain() { main=this; }

  9. ios 给图片加文字

    - (UIImage*) drawText:(NSString*)text inImage:(UIImage*)image { //prepare image context UIGraphicsBe ...

  10. mongodb基础学习1-基本说明及安装

    以前看过一些mongodb的视频,但只看到一半没有看完,也没有同步安装软件动手操作,正好最近没事,打算花点时间从头学习一遍,边学习边动手操作,学习的过程在此进行记录. 好了,下面说一下今天的学习内容. ...