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. django中的 form 表单操作

     form组件  1. 能做什么事?   1. 能生成HTML代码  input框   2. 可以校验数据   3. 保留输入的数据   4. 有错误的提示   1. 定义   from django ...

  2. python urlretrieve 下载图片

    python 3中urlretrieve方法直接将远程数据下载到本地.为什么不行? 55 import re import urllib.request def getHtml(url): page ...

  3. CUDA C Programming Guide 在线教程学习笔记 Part 8

    ▶ 线程束表决函数(Warp Vote Functions) ● 用于同一线程束内各线程通信和计算规约指标. // device_functions.h,cc < 9.0 __DEVICE_FU ...

  4. 局部敏感哈希-Locality Sensitivity Hashing

    一. 近邻搜索 从这里开始我将会对LSH进行一番长篇大论.因为这只是一篇博文,并不是论文.我觉得一篇好的博文是尽可能让人看懂,它对语言的要求并没有像论文那么严格,因此它可以有更强的表现力. 局部敏感哈 ...

  5. leetcode263

    public class Solution { private bool Judge(int x) { ) { return false; } int bound = Convert.ToInt32( ...

  6. redis详解(四)-- 高可用分布式集群

    一,高可用 高可用(High Availability),是当一台服务器停止服务后,对于业务及用户毫无影响. 停止服务的原因可能由于网卡.路由器.机房.CPU负载过高.内存溢出.自然灾害等不可预期的原 ...

  7. WebService客户端调用的几种方式

    1.用组件HTTPRIO,支持VCL WIN32和FIRE MONKEY跨平台Android手机 HTTPRIO1.URL := 'http://127.0.0.1:8080/soap/IsoapTe ...

  8. Spring MVC 异常处理 - DefaultHandlerExceptionResolver

    对一些特殊的异常进行处理,比如方法类型不匹配, 转换错误.

  9. ABAP-金额小写转大写

    FUNCTION ZSDI0007_CH_LOWERTOUPPER. *"---------------------------------------------------------- ...

  10. block元素和inline元素的特点

    一.block元素的特点 1.处于常规流中时,如果width没有设置,会自动填充满父容器 2.可以设置height/width及margin/padding 3.处于常规流中时,布局在前后元素位置之间 ...