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

教材学习内容总结

异常

1.学习了异常的基本概念;
2.区分异常与错误:

  • 一个异常是指一个定义非正常情况或错误的对象,由程序或运行时环境抛出,可以根据需要进行相应的捕获和处理。而错误类似于异常,但是错误代表不可恢复的问题并且必须捕获处理。
  • 一个异常确实代表了一个错误,但是异常只是代表了一种意外的情况,即一种在正常条件下不会发生的情况,异常处理提供了一种处理异常的有效方式。
    3.处理异常的三个基本方法:
  • 根本不处理异常
  • 当异常发生时处理异常
  • 在程序某个位置集中处理异常
    4.try-catch语句
  • 没有异常,将继续执行try语句后的语句块,所有catch子句后的语句。
  • 有异常,则控制立刻转移到相应的catch子句处理异常。
    5.finally语句
  • 一条try-catch语句可以有一个可选的finally子句,用于定义一段无论是否有异常发生都将执行的代码。
  • 如果有finally子句,则必须跟在所有的catch子句后面。
  • try语句块可以没有catch子句,但仍然可以使用finally子句。

递归

1.递归思想:递归是一种方法能够调用自己的编程技术,掌握递归编程的关键是能以递归的思想考虑问题;
2.无穷递归的情况类似于无限循环;
3.直接递归和间接递归:

  • 方法调用自己的递归,称为直接递归;
  • 如果一个方法调用其他方法,最终导致再次调用自己,则称为间接递归。
    4.递归的经典应用是迷宫旅行和汉诺塔问题;

教材学习中的问题和解决过程

  • 问题1:当学习了异常的概念和解决办法以后,我想异常和错误有什么差别,为什么错误不能用解决异常的方法在处理。
  • 问题1解决方案:在教材的思考题中学到了错误和异常的区别:
    异常:是一个定义非正式情况或错误的对象,由程序或者运行时环境抛出,可以根据需要捕获和处理。
    错误:错误类似于异常,但是错误代表不可恢复的问题并且必须捕获处理。
    然而到了这里,我依旧不知道为什么不能用相同的办法处理,于是查找了相关资料,意识到他们相似但是不完全一样,主要差异在运行时出现错误的等级,相比较来说“错误”等级更高。

代码调试中的问题和解决过程

  • 问题1:在完成课堂实践时出现了一个代码运行结果始终为1的情况,而且错误点还无限

  • 问题1解决方案:问了王老师,他说这就是无穷递归的情况,问题出在if-else语句上面,做了如下改进,运行便成功了,着加深了我对无穷递归的理解。

代码托管

脚本截图

上周考试错题总结


分析:这个题出错主要是由于对于概念的理解不够清楚。重载只是为具有不同参数列表的方法提供了替代方法。重写提供了多态性,因为根据当前正在引用的对象调用适当的方法。嵌入是类中的类的封闭。抽象与多态性无关。封装是通过使用可见性修饰符(公共的、私有的、受保护的)实现的。

Upcasting是完全安全的,它是Java支持的单一继承结构的产物。相比之下,Downcasting必须由程序员明确地完成。Java只在一个方向上进行强制转换。upcasting和downcasting的规则并不依赖于使用中的可见性修饰符。

虽然继承和接口支持多态性,但只有在具有后期绑定的情况下才会这样做。但是,重载是多态性的一种形式(方法)名称,多个主体,因此只要程序使用重载,多态性就会被使用。

结对及互评

点评模板:

  • 博客中值得学习的或问题:

    • 刘辰同学在博客记录问题上面比以前更加细致了,对于问题的描述和解决过程逗比以前更好,希望继续努力;
    • 在排版上好像出了点问题,教材问题一的图片好像出现了超出界面的情况,希望改正。
  • 代码中值得学习的或问题:
    • 很好
    • 非常好
  • 基于评分标准,我给本博客打分:满分。

    点评过的同学博客和代码

  • 本周结对学习情况
    • 20172306

      • 结对学习内容
      • 学习第十一和十二章pp项目。
      • 学习异常和递归的具体内容
      • 对于IO操作的共同探讨
      • 继续完善四则运算的的项目

其他(感悟、思考等,可选)

  • 一直觉得老师应该先讲课,我们再进行进一步的研究学习,毕竟老师应该先传播知识嘛,现在的模式就很舒服了,在学习过程中遇到的问题少了很多,有很多东西看到了就知道,不用像以前那样找不到专业解答,还得自己去找一个个不知道对错的答案。
  • 前一个月每晚都要去练习啦啦操,和班里同学相比少了很多学习时间,现在终于结束,必须要加紧步伐,更上老师同学的脚步呢。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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
第八周 382/4404 3/11 16/215
第九周 1301/5705 2/13 28/243

参考资料

20172325 2017-2018-2 《Java程序设计》第九周学习总结的更多相关文章

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

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什 ...

  2. 20145220java程序设计第九周学习总结

    20145220java程序设计第九周学习总结 教材学习内容总结 JBDC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商对接口直接操作,开发人员无须接触底层数据可驱动程序的差异 ...

  3. 201771010134杨其菊《面向对象程序设计java》第九周学习总结

                                                                      第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...

  4. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  5. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  6. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  7. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

  8. 马凯军201771010116《面向对象与程序设计Java》第九周学习总结

    一.理论知识部分 异常.日志.断言和调试 1.异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行. 2.Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置. 3 ...

  9. 201521123063 JAVA程序设计 第二周学习总结

    1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...

  10. 《Java》第九周学习总结

    下载mysql 选择mysql的管理软件 idea可以直接连接 然后用库运行程序,但是没有截图,,因为想在navicat上试试,可惜速度太慢了 打开idea又很慢,所以明天再更新

随机推荐

  1. [Python] 牛顿插值

    插值公式为: 差商递归公式为: # -*- coding: utf-8 -*- #Program 0.4 Newton Interpolation import numpy as np import ...

  2. X86、X64和X86_64区别

        x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称 ...

  3. [Flutter] 一些面试可能会问基础知识

    1. Flutter 是什么? Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面. Flutter可以与现有的代码一起工作.在全世界,Flutter正在被 ...

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

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

  5. MySQL设置快速删除

    SET FOREIGN_KEY_CHECKS=0; DROP DATABASE ... SET FOREIGN_KEY_CHECKS=1;

  6. Safari-IoS调试

    打开Safari浏览器,进入扩展功能,打开开发功能. 手机模拟器在设置中选择 javascript调试允许. 在模拟器中的页面,在Safari浏览器-开发模式-Serinator中选择打开的页面,即可 ...

  7. Win10 pip install gensim 报错处理

    # 故障描述 shell > pip install gensim # 报错信息如下: Command "c:\users\op\appdata\local\programs\pyth ...

  8. 转载 JS组件Bootstrap Select2使用方法详解

    JS组件Bootstrap Select2使用方法详解 作者:懒得安分 字体:[增加 减小] 类型:转载 时间:2016-01-26我要评论 这篇文章主要为大家介绍了JS组件Bootstrap Sel ...

  9. mysql备份的三种方式

    一.备份的目的 做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 二.备份需要考虑的问题 可以容忍丢失多长时间的数据:恢复数据要在多长时间内 ...

  10. java script 模拟鼠标事件

    try { var selector1 = "._3-8y:first-child"; var evt = document.createEvent("MouseEven ...