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


    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

  • 相关阅读:
    sqlite3.6.10的vs2005 编译错误
    .NET网络编程学习(二)
    Lucene的使用(一)
    .NET网络编程学习(三)
    深入学习Heritrix解析Frontier(链接工厂)
    .NET网络编程学习(一)
    Subversion的Windows服务配置
    深入学习Heritrix解析处理器(Processor)
    log4net的使用
    深入学习Heritrix解析CrawlController
  • 原文地址:https://www.cnblogs.com/20175226wpy/p/10666110.html
Copyright © 2020-2023  润新知