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

    20175334 《Java程序设计》第六周学习总结

    教材学习内容总结

    第七章

    • 掌握内部类
      • Java支持在一个类中定义另一个类,这样的类被称作内部类,包含内部类的类称作内部类的外嵌类
      • 内部类和外嵌类的重要关系:
        • 内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法
        • 内部类的类体中不可以声明类变量和类方法,外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员
        • 内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象
      • Java编译器生成的内部类的字节码文件名称格式为外嵌类名$内部类名
      • 内部类可以被修饰为static内部类,但不能操作外嵌类中的实例成员变量
    • 掌握匿名类
      • 和子类有关的匿名类:
        • 直接使用一个类的子类的类体创建一个子类对象
        • 不可能用匿名类声明对象,但可以直接用匿名类创建一个对象
        • 匿名类的特点:
          • 匿名类可以继承父类的方法也可以重写父类的方法
          • 使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是外部类
          • 匿名类可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以声明static成员变量和static方法
          • 由于匿名类是一个子类,但没有类名,所以在用匿名类创建对象时,要直接使用父类的构造方法
      • 和接口有关的匿名类:
        • 直接用接口名和一个类体创建一个匿名对象
        • 如果某个方法的参数是接口类型,那可以使用接口名和类体组合创建一个类名对象传递给方法的参数,类体必须重写接口中的全部方法
    • 理解异常类
      • 异常对象可以调用public String getMessage()public void printStackTrace()public String toString()这些方法得到或输出有关异常的信息
      • try-catch语句处理异常,将可能出现的异常操作放在try部分,发生异常后的处理放在catch部分
      • 一个方法体在声明时可以用关键字throws声明要产生的若干个异常,并用关键字throw抛出该异常对象
    • 理解断言
      • 断言语句一般用于程序不准备通过捕获异常来处理的错误
      • 用关键字assert声明一条断言语句,有两种格式assert booleanExpression;assert booleanExpression:messageException;
      • 用关键字-ea启用断言语句

    第十章

    • 输入、输出流提供一条通道程序,可以使用其读取源中的数据,或把数据送到目的地;输入流的指向称作源,程序从指向源的输入流中读取源中的数据;输出流的指向称作目的地,程序通过向输出流中写入数据把信息传递到目的地
    • InputStream的子类创建的对象称作字节数入流,字节数入流按字节读取源中的数据,只要不关闭流,每次调用读取方法时就顺序地读取源中的其余的内容,直到源中的末尾或流被关闭
    • Reader的子类创建的对象称作字符输入流,字符输入流按字符读取源中的数据,只要不关闭流,每次调用读取方法时就顺序地读取源中的其余内容,直到源中的末尾或流被关闭
    • OutputStream的子类创建的对象称作字节输出流,字节输出流按字节将数据写入输出流指向的目的地中,只要不关闭流,每次调用写入方法就顺序地向目的地写入内容,直到流被关闭
    • Writer的子类创建的对象称作字符输出流,字符输出流按字符将数据写入输出流指向的目的地中,只要不关闭流,每次调用写入方法就顺序地向目的地写入内容,直到流被关闭
    • 使用对象写入或读入对象时,要保证对象是序列化的,这是为了保证能把对象写入到文件,并能再把对象正确读回到程序中;使用对象流很容易获取一个序列化对象的克隆,我们只需将该对象写入对象输出流指向的目的地,然后将该目的地作为一个对象输入流的源,那么该对象输入流从源中读回的对象一定是原对象的一个克隆

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

    • 问题1:运行第十章例子2时运行结果为空白
    • 问题1解决方案:重新翻过书后发现此例子是列出当前目录下全部.java文件的名字,因为我写代码.class.java是分开的,所以结果为空白
    • 问题2:运行第十章例子3时弹出java.io.IOException: Cannot run program "/home/lxr/java2017/第十章/bin/c:/windows/Notepad.exe": error=2, 没有那个文件或目录
    • 问题2解决方案:蓝墨云中有人问过此问题,因为Linux中无法读取.exe文件,所以需要在Windows系统中运行
    • 问题3:运行第十章例子4时弹出File read Errorjava.io.FileNotFoundException: Example10_4.java (没有那个文件或目录)
    • 问题3解决方案:自己研究后发现需要把例子14的.java文件和.class文件放在一起
    • 问题4:运行第十章例子6时运行结果为空白
    • 问题4解决方案:翻书后发现此例子是将文件a.txt内容尾加到文件b.txt
    • 问题5:运行第十章例子7时弹出java.io.FileNotFoundException: english.txt (没有那个文件或目录)
    • 问题5解决方案:翻书后发现此例子需要创建一个english.txt文件
    • 问题6:运行第十章例子7时弹出java.io.FileNotFoundException: english.txt (没有那个文件或目录)
    • 问题6解决方案:翻书后发现此例子需要创建一个english.txt文件
    • 问题7:运行第十章例子15时弹出java.io.FileNotFoundException: cost.txt (没有那个文件或目录)
    • 问题7解决方案:重新翻过书后发现需要写一个cost.txt文件,之后可以正常运行
    • 问题8:运行第十章例子16时弹出java.io.FileNotFoundException: student.txt (没有那个文件或目录)
    • 问题8解决方案:重新翻过书后发现需要写一个student.txt文件,之后可以正常运行
    • 问题9:运行第十章例子20时会把答案一起显示
    • 问题9解决方案:尚未解决
    • 问题10:打代码时经常将throwthrows打混
    • 问题10解决方案:书上168页给出了两个关键字的具体意义以及用法

    代码托管

    学习心得

    • 这两章内容十分多,新的类和方法也很多,与之前学习的内容产生了混淆,要在后面的时候总结复习
    • 在打代码时候,不能只单纯的打代码,需要联系上下文以及提示,比如需要创建一个.txt文件等,否则运行时会发生错误
    • 课下选做题有一定难度,通过这两道题也发现了自己的薄弱环节,还需要继续努力

    参考资料

  • 相关阅读:
    C++学习基础十一——子类对象向父类对象的转化
    C++学习基础十——子类构造函数与析构函数的执行
    C++学习基础九——继承
    浅谈OpenGL变换矩阵
    笔记-Ajax[3]-ajax类终极版;
    笔记-Ajax[1]-的整体流程。
    笔记-[js兼容]-滚动条的滚动距离的兼容性问题解决方法。
    JS中的一些不常用的知识点。
    笔记-[面向对象]-JS基于面向对象编程-[2]
    笔记-[面向对象]-JS基于面向对象编程-[1]
  • 原文地址:https://www.cnblogs.com/lxr1006/p/10662379.html
Copyright © 2011-2022 走看看