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

教材学习内容总结

chapter7

  • Java支持在一个类中声明另外一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类

    • 内部类的类体中不可以声明类变量和类方法
    • 内部类可以被修饰为static内部类,但static内部类不能操作外嵌类中的实例变量成员
  • 和某类/接口有关的匿名类就是该类的一个子类,该子类没有明显地用类声明来定义,所以称作匿名类
    • 匿名类一定是内部类
  • 异常类
    • Java使用关键字throw抛出一个Exception子类的实例表示异常发生
    • 将可能出现的异常操作放在try-catch语句的try部分,一旦try部分抛出异常对象,那么try部分将立刻结束执行,转向执行相应的catch部分
    • 一个方法在声明时可以采用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作
  • 使用关键字assert声明断言语句
    • Java解释器直接运行应用程序时,默认地关闭断言语句,在调试程序时可以使用-ea启用断言预计
  • 在try-catch语句中执行了return语句,那么finally子语句仍然会被执行;若执行了System.exit(0);,则不执行finally子语句

chapter10

  • File类的对象主要是用来获取文件本身的一些信息,不涉及对文件的读写操作
  • 文件字节输入、输出流的四个基本步骤
    • 程序必须在try-catch语句中的try部分创建输入/输出流,在catch部分检测并处理这个异常
    • 文件中的读取或写入,每次都是顺序进行,直到流被关闭或结束
  • 文件字符输入、输出流基本与字节输入、输出同理
  • 使用BufferReader流的方法readLine()读取文本行;使用BufferedReader类的方法write(String s,int off,int len)把字符串s写到写入文件。
  • 用RandomAccessFile类创建的流称作随机流,随机流即可以作为流的源,也可以作为流的目的地
    • RandomAccessFile流指向文件时,不刷新文件
    • 其它方法:seek(long a);getFilePointer()
  • 使用对象流获取序列化对象的克隆
  • 使用Scanner类和正则表达式来解析文件的特点是以时间换取空间,即解析的速度相对较慢,但节省内存
    • 使用默认分隔标记解析文件
    • 使用useDelimiter方法指定正则表达式作为分隔标记

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

  • 问题1:教材p167

    异常对象可以调用如下方法得到或输出有关异常的信息

    public String getMessage();
    public void printStackTrace();
    public String toString();
    这三种方法的输出结果有什么差别?

  • 问题1解决方案:printStackTrace()、toString()、getMessage()的区别

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

  • 问题1:ch7例子4中出现如下问题

  • 问题1解决方案:将catch语句后漏掉的 { 补上即可
  • 问题2:ch10例子1中编译结果出现偏差

  • 问题2解决方案:将源文件中File f = new File("java-besti-is-20165215/src/chapter10","Example10_1.java");改为File f =new File(".","Example10_1.java");后运行结果如下

  • 问题3:编译ch10例子2时出现如下错误

  • 问题3解决方案:出现fileName的位置统一好大小写;将extendName中漏掉的d补上

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 对成员变量的操作只能放在方法中;面向对象语言中的“方法”相当于C语言中的“函数”。
  • UML类图中方法的属性用+表示public,用-表示privat;继承用一个带三角的直线表示,由子类指向父类。
  • Java程序以类为基本单位
  • p72页例子8中圆锥对象委托圆对象调用getArea()方法计算底的面积
  • 不能用protected和private修饰类

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 37/37 1/1 15/15
第二周 398/429 2/3 15/30
第三周 753/1167 1/4 20/50
第四周 1296/2109 2/6 20/70
第五周 1191/3323 2/8 20/90

参考资料

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

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

    20165215 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 URL 类是 java.net 包中的一个重要的类,使用 URL 创建对象的应用程 ...

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

    20165215 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 跟随网课学习了<Java2 实用教程>的第一章,进行了基础的编译练习 在Ubun ...

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

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

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

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

  5. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  6. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  8. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  9. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  10. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

随机推荐

  1. document数据路由

    (1)document数据路由的理解:我们知道,一个index的数据会被分为多片,每片都在一个shard中,所以说,一个document,只能存在于一个shard中.当客户端创建document的时候 ...

  2. Android 出现 activity supporting action_view is not set as browsable报错

    <activity android:name=".ThirdActivity"> <intent-filter> <action android:na ...

  3. 20190316 安装pip的一些问题

    前提条件: 1. windows环境中安装python3.7 2.注意配置环境变量 确认python.和pip都能直接在cmd 控制台使用, 一个是python命令的地址指向,一个是pip命令的地址指 ...

  4. what's the 爬虫之基本原理

    what's the 爬虫? 了解爬虫之前,我们首先要知道什么是互联网 1.什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,总体上像一张网一样. 2.互联 ...

  5. python的第三方库

    python的第三方库 https://www.lfd.uci.edu/~gohlke/pythonlibs/

  6. MySQL语法和用户授权

    管理数据库 create database 等同于 create schema #导入数据库脚本     MariaDB [db1]> source /root/mysql/hellodb_in ...

  7. vue/cli3 配置vux

    安装各插件 试过 安装“必须安装”的部分亦可 1.安装vuex npm install vuex --save-dev 2.在项目里面安装vux[必须安装] npm install vux --sav ...

  8. 在Linux直接运行安卓程序

    Linux上的软件少得可怜,要是能够直接运行安卓程序,那将是意见很酷的事情. 方法原理:首先这个方法不需要开启安卓虚拟机,是直接在Linux上运行的. 谷歌在很早之前提出了archon的方案,能够直接 ...

  9. GitHub账户注册

    GitHub是一个优秀的面向开源及私有软件项目的托管平台,值得我们使用,但因为其不同于我们常见的很多平台,所以刚开始使用时,我们会遇到很多的问题.特此记录下博主自己使用GitHub的过程供自己以后查看 ...

  10. [django]drf知识点梳理-权限

    用户 - 权限 - 资源 (拥有) (绑定) django权限机制能够约束用户行为,控制页面的显示内容,也能使API更加安全和灵活:用好权限机制,能让系统更加强大和健壮 django权限控制 Djan ...