20165203《Java程序设计》第五周学习总结

教材学习内容总结

第七章
  • 内部类
    注意内部类和外嵌类的关系:
  1. 外嵌类的成员变量和方法在内部类有效
  2. 内部类的类体不可以声明static变量和方法。外嵌类的类体可以用内部类声明对象。
  3. 内部类仅供它的外嵌类使用,其他类不可以。
  • 匿名类
  1. 直接使用子类的类体创建一个子类对象。
  2. 匿名类可以继承父类的方法也可以重写父类的方法。
  3. 匿名类一定是内部类。
  4. 匿名类可以访问外嵌类中的成员变量和方法,但自身类体不可以有static成员变量和方法。
  5. 用匿名类创建对象时,要直接使用父类的构造方法。
  6. 和接口有关的匿名类:如果某个方法的参数是接口类型,那么可以使用接口名和类体组合创建一个匿名对象传递给方法参数,类名必须要重写接口中的全部方法。
  • 异常类 (try-catch语句)
    try-catch语句的格式:
try {
    包含可能发生异常的语句  
    
}
catch (ExceptionSubClass1 e){
    ···
}
catch(ExceptionSubClass2 e){
    ···
}

注意:
1.各个catch参数的异常类都是Exception的某个子类,表明try部分可能发生的异常,且子类之间不能有父子关系,否则只保留一个即可。
2.也可以自定义异常类。

  • 断言(assert语句)
  1. 断言语句的语法格式
    assert booleanExpression

assert booleanExpression:messageException
2.启用与关闭
直接用java格式运行,默认关闭断言句
可以使用java -ea mainClass启用断言句

  • finally语句
    1.格式:
try{}  
catch(ExceptionSubClass e) {  }  
finally{}  

2.无论try是否异常,finally子语句都会被执行

第十章
  • File类:File对象主要用来直接获取文件本身的一些信息(文件所在的目录,长度和读写权限等,不涉及写的操作)

构造方法
File(String filename)
File(String directoryPath,String filename)
File(File dir, String filename)

创建目录
public boolean mkdir

列出目录中的文件
public String[] list()
public File[] listFiles()
删除文件
public boolean delete()

运行可执行的文件

Runtime ec;  
ec = Runtime.getRuntime();  
ec.exec(String command);   
  • 输入流:读取文件
  • 输出流:写入文件
  • 文件字符输入、输出流:FileReader,FileWriter
  • 缓冲流:BufferedReaderBufferedWriter类创建的对象
  • 随机流:RandomAccessFile类创建的对象
  • 数组流:ByteArrayInputStreamByteArrayOutputStream创建的对象
  • 数据流: DataInoutStreamDataOutputStream类创建的对象
  • 对象流:ObjeatInputStreamObjectOutputStream类创建的对象
  • 序列化和对象克隆
  • 使用Scanner解析文件
  • 文件对话框
  • 带进度条的输入流
  • 文件锁

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

Q1:之前,有同学问我在虚拟机中,希腊字母怎么敲出,在这里说一下。
A1:

  1. 点击虚拟机左上角的那个键盘图标
  2. 选择字母符号映射表
  3. 在左栏中下拉选择希腊字母
  4. 双击自己想敲的字母,复制粘贴就可以了
    如图所示

    运行结果如图所示

Q2:在学习到,如图所示代码时,对于Exception的子类不是太懂,想了解Exception的子类都有哪些?

A2:我搜了一下,原来教材中的NumberFormatException为字符的UTF代码数据格式有错引起异常而抛出的异常类,具体参考Exception的子类

Q3:对于教材中的输入流和输出流,我想做一下总结。
A3:

名称 解释 构造方法 可调用方法
文件字节输入流 使用FileInputStream创建的对象 FileInputStream(String name); FileInputStream(File file); int read()``````int read (byte b[]``````int read(byte b[],int off,int len)
文件字节输出流 使用FileOutputStream创建的对象 FileOutputStream(String name); FileOutputStream(File file);``````FileOutputStream(String name,boolean append); FileOutputStream(File file,boolean append); void write(int n);``````void write(int n);``````void write(byte b[],int off,int len);

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

Q:(未解决)代码调试时,出现了如图所示情况,但不知道为何我的文件不可读,还希望大家帮忙解答一下。

代码托管


上周考试错题总结

Q1:
A1:A.应用this,super用来操作被隐藏的成员变量和方法,调用父类中的构造方法
B.double的默认值是0.0
D.方法相当于C语言中的函数

Q2:
A2:对于UML图,一般是用正常字体表示正常方法,斜体表示抽象方法。
B项,用+表示public,用-表示private。D项,继承用一个带三角的直线表示,由子类指向父类

其他(感悟、思考等,可选)

本周的学习涉及了以前没有接触到的知识,就是异常类和流的概念,因为之前没有接触过,所以,接受起来较之前的知识,稍微慢些,但是,我的方法是先看娄老师给的网课,先听一下老师的介绍,然后自己再看教材,看看自己能否有新的理解与感悟,相信有这种方法,自己可以攻克这道难关。


学习进度条

~ 代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第五周 2119/1500 1/2 46/90

参考资料

Exception的子类

posted @ 2018-04-01 11:11  I~Justice  阅读(160)  评论(0编辑  收藏  举报