20175226 2018-2019-2 《Java程序设计》第六周学习总结

教材学习内容总结

内部类与异常类

  • 内部类:Java支持在一个类中定义另一个类(可以是static类)

    • 外嵌类的成员变量、方法在内部类中都有效、可调用
    • 内部类中不可以声明类变量和类方法,外嵌类的可以用内部类声明对象
    • 其他类不可用别类的内部类
  • 匿名类:直接使用一个类的子类的类体创造一个子类对象(不可以声明static方法或对象)
    • 匿名类可以继承重写父类方法
    • 匿名类是内部类
    • 需要直接使用父类的构造方法
    • new 父类名() { 匿名类类体 }
  • 和接口有关的匿名类
    • 允许直接用接口名和一个类体创造一个匿名对象
    • 语法:new 接口名() { 实现接口的匿名类的类体 }
  • 异常类
    • 输出异常信息
public String getMessage();
public void printStackTrace();
public String toString();
  • try-catch语句

    • 语句
try {
包含可能异常的语句
}
catch(ExceptionSuClass1 e) {
....
}
catch(ExceptionSuClass2 e) {
....
}
- 利用Exception类定义自己的异常类
  • 断言

    • 语法格式
assert booleanExpression;
assert booleanExpression:messageException;
- 启动断言语句,使用``-ae``语句

输入、输出流

  • File类

    • 其对象用于获取文件本身信息,不涉及文件读写
    • 构造方法
File(String filename);
File(String directoryPath,String filename);
File(File dir,String filename);
- 可以使用File进行获取某些信息
- 创建目录``public boolean mkdir ()``
- 可以调用某些方法列出文件目录中的文件
- 文件创造``public boolen createNewFile``、文件删除``public boolen delete``
- 运行可执行文件``Runtime``
  • 文件字节输入流

    • 设定输入流的源
    • 创建指向源的输入流
      • 创造方法
       FileInputStream(String name);
      FileInputStream(File file);
    • 让输入流读取源中的数据(利用read方法顺序读取其中的内容)
    • 关闭输入流(关闭方法close)
  • 文件字节输出流
    • 设定输出流的目的地
    • 创建指向目的地的输出流
      • 创造方法
       FileOutputStream(String name);
      FileOutputStream(File file);
    • 使用输出流写字节(利用write方法写入文件)
    • 关闭输出流(关闭方法close)
  • 文件字符的输入输出流
    • 使用readwrite方法,以字符为基本单位处理数据
  • 缓冲流
    • BufferedReaderBufferedWriter类创建对象在读取和写入上增加了很多功能,更加方便
  • 随机流
    • RandomAccessFile类既可以用来读取也可以用来写入
RandomAccessFile(String name,String mode);
RandomAccessFile(File file,String mode);
- mode 取r(只读)或rw(可读写)
- 有很多常用方法**教材p293-p294**
  • 数组流

    • 流的源头目的地还可以是计算机内存
    • 字节数据流几个构造方法
ByteArrayInputStream(byte[] buf);
ByteArrayInputStream(byte[] buf,int offset,int length);
ByteArrayInputStream(byte[] buf);
ByteArrayInputStream(byte[] buf);
- 字符数组流``CharArrayReader``和``CharArrayWirte``
  • 数据流

    • 数据输入输出流构造方法
DataInputStream(InputStream in)
DataOutputStream(OutputStream in)
- 此类的部分常用方法**教材p297**
  • 对象流

    • 构造方法
ObjectInputStream(InputStream in)
ObjectOutputStream(OutputStream in)
  • 序列化与对象克隆

    • 一个类的两个对象如果具有相同的应用,他们就具有相同的实体和功能
    • 使用对象流获取一个序列化对象的克隆
  • 使用Scanner解析文件
    • 默认分隔符:以空格作为分隔标记
File file = new File("wenjian.java");
Scanner sc = new Scanner(file);
 - 正则表达式作文分隔
File file = new File("wenjian.java");
Scanner sc = new Scanner(file);
sc.useDelimter(正则表达式);
  • 文件对话框

    • JFileChooser创建文件对话框
  • 带进度条的输入流
    • 输入流类ProgressMonitorInputStream
  • 文件锁
    • 使用RandomAccessFile流建立指向文件的流对象
    • 流调用方法getChannel()获得连接到底层文件的FileChannel对象
    • 信道调用tryLock()或lock()方法获得FileLock对象
    • 读写是用release()释放文件锁

教材学习中遇到的问题及解决过程

  • 问题1:内部类里面还能定义一个内部类吗?
  • 问题1解决过程:百度加验证,经过百度且将百度后的代码验证后证明是可以的。不过百度知道的回答者说这想法有点诡异估计用不上

    参考链接
  • 问题2:为什么要有匿名类其用途及好处有什么?
  • 问题2解决过程:果然百度比较好用

    -可以使命名变得简洁

    -使代码更加紧凑,简洁,封装性比内部类更优

    • 一个类用于继承其他类或是实现接口,无需增加其他的方法,只是对继承方法实现覆盖。

      参考博客
  • 问题3:第十章中出现了无数新类,无数定义没有办法将他们全部理清楚
  • 问题3解决过程:通过看视频的讲解后有了更加深入的了解,对于他们的用途多多少少有了点了解,不过肯定还是没有完全弄懂,还需要之后的更多练习

代码学习中遇到的问题及解决过程

  • 问题1:在IDEA中实现-ea启动断言语句
  • 问题1解决方案:

    点击runEdit然后在VM栏里输入 -enableassertions 或者 -ea 就好了



    参考博客

代码托管

学习进度条

计划学习时间:20小时

实际学习时间:不足16小时

代码行数:1404/2976

20175226 2018-2019-2 《Java程序设计》第六周学习总结的更多相关文章

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

    20175226 2018-2019-2 <Java程序设计>第二周学习总结 教材学习内容总结 基本数据类型与数组 标识符与关键字 标识符不能是关键字.true.false.null.且第 ...

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

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

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

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

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

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

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

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

  7. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  8. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

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

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

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

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

随机推荐

  1. 【转】Linux中的特殊权限粘滞位(sticky bit)详解

    Linux下的文件权限 在linux下每一个文件和目录都有自己的访问权限,访问权限确定了用户能否访问文件或者目录和怎样进行访问.最为我们熟知的一个文件或目录可能拥有三种权限,分别是读.写.和执行操作, ...

  2. loj121-动态图连通性

    Solution 线段树分治, 然后直接在线段树上dfs, 在进入/回溯的过程中维护并查集的merge/split. 对于split操作, 可以在merge时按秩合并, 然后利用栈记录, split时 ...

  3. odoo 权限问题

    odoo 权限问题 权限组问题 权限组是为了将人员按组划分同一分配权限.权限组的建立是基于每个应用来实现的 建立一个应用的分组(可省略,主要用于创建用户时有选择项) 建立一条record记录model ...

  4. 关于Tomcat

    详情转自:http://blog.csdn.net/jiuqiyuliang/article/details/48094373和http://blog.csdn.net/u012934325/arti ...

  5. 数据分析三剑客之pandas

    Pandas 引入 前面一篇文章我们介绍了numpy,但numpy的特长并不是在于数据处理,而是在它能非常方便地实现科学计算,所以我们日常对数据进行处理时用的numpy情况并不是很多,我们需要处理的数 ...

  6. ASP.NET MVC 企业级实战

    1.泛型 public class List<T>{ } 当定义泛型类的实例时,必须指定这个实例所存储的实际类型,泛型允许程序员将一个实际的数据类型规约延迟至泛型的实例被创建时才确定,泛型 ...

  7. uboot中的中断macro宏

    目录 uboot中的中断macro宏 引入 内存分配 流程概览 普通中断 保存现场 中断函数打印具体寄存器 恢复现场 软中断 空间获取 保存现场 附录速记 疑惑待解 title: uboot中的中断m ...

  8. Vue学习笔记七:Vue中的样式

    目录 两种样式 class样式 内联样式 两种样式 Vue中使用样式方式有两种,一种是class样式,一种是内联样式也就是style class样式 class样式使用的方式有5种,HTML如下 &l ...

  9. [Luogu P1354]房间最短路问题

    这是一道紫题,然而实际上我觉得也就蓝题难度甚至不到. and,这道题就是一道数学题,代码模拟计算过程. 求最短路嘛,肯定要考虑建图,只需要把中间的墙上每个口的边缘处的点作为图中的点就行.至于为什么,显 ...

  10. RabbitMQ installation

    以windows环境测试 Erlang http://www.erlang.org/downloads 下载并安装 运行时软件 Erlang OTP 21.3 Windows 64-bit Binar ...