zoukankan      html  css  js  c++  java
  • 《java程序设计》第六周学习总结

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

    教材学习内容总结

    内部类与异常类

    • 内部类: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)
    
    • 文件字符的输入输出流
      - 使用read和write方法,以字符为基本单位处理数据
    • 缓冲流
    BufferedReader和BufferedWriter类创建对象在读取和写入上增加了很多功能,更加方便
    
    • 随机流
    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:IDEA中怎么设置断言。
    解决方案:点击runEdit 然后在 VM 栏里输入 -enableassertions 或者-ea

    代码调试中的问题和解决方法

    问题1:example10_12运行出错

    解决方案:类名与对象名不一致。检查修改后就好了
    码云链接
    代码托管

    (statistics.sh脚本的运行结果截图)
    总结:本周有两章的内容,不仅多且复杂,由于放假时间未安排合理,导致在最后来赶作业,所以对本周的内容还未掌握,应该再继续看书,多加练习,通过实践来巩固知识。

  • 相关阅读:
    [SUCTF 2019]EasySQL
    [强网杯 2019]随便注
    [HCTF 2018]WarmUp
    Linux下配置JDK环境
    Centos克隆虚拟机后配置网络
    Sublime安装插件
    LeetCode-91-解码方法
    LeetCode-322-零钱兑换
    LeetCode-152-乘积最大子数组
    LeetCode-139-单词拆分
  • 原文地址:https://www.cnblogs.com/zhangdeshuai/p/10667177.html
Copyright © 2011-2022 走看看