20165223 《JAVA程序设计》第五周学习总结
教材学习内容总结
第七章要点
- 内部类
- 匿名类
- 异常类
- 断言
第十章要点
- File类
- 文件字节/字符的输入、输出流
- 缓冲流
- 随机流
- 数组流
- 数据流
- 对象流
- 序列化和对象克隆
- 使用Scanner解析文件
- 文件锁
教材学习中的问题和解决过程
一、内部类
JAVA重要成员:成员变量、方法、内部类
内部类:在一个类中定义另一个类,被定义的类叫内部类
外嵌类:包含内部类的类称内部类的外嵌类
内部类和外嵌类的重要关系:
- 外嵌类的成员变量在内部类仍然有效,内部类中的方法也可以调用外嵌类中的方法
- 内部类中的类体不可以声明类变量和类方法。外嵌类的类体可以用内部类声明对象
- 内部类仅供它的外嵌类使用
内部类对应字节码文件名字格式:
外嵌类名$内部类名
内部类可以被修饰为static内部类,但非内部类不可以是static类
二、匿名类
和子类有关的匿名类
- 匿名类:子类去掉类声明后的类体
- 形式:
new Bank() {
匿名类的类体
};
- 特点:
- 匿名类就是个子类
- 匿名类亦可继承父类的方法也可以重写父类的方法
- 匿名类一定是内部类,使用时直接在某个类中用匿名类创建对象
- 匿名类可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以声明static成员变量和static方法
- 用匿名类创建对象时,要直接使用父类的构造方法
和接口有关的匿名类
- 匿名类:实现接口的类去掉类声明后的类体
- 形式:
new Computable() {
实现接口匿名类的类体
};
三、异常类
异常:程序运行过程中可能出现的错误,异常类用作异常处理,给程序机会对错误作出处理
常见异常类:
- 使用
throw
关键字抛出Exception
子类的实例表示发生异常 - 方法
parseInt()
在执行时使用throw
抛出NumberFormatException
对象出现异常 - 流对象调用
read
方法读取不存在的文件时抛出IOException
异常对象 - ……
- 使用
try-catch语句
- 格式:
try {
包含可能发生异常的语句
}
catch(ExceptionSubClass1 e) {
...
}
catch(ExceptionSubClass2 e) {
...
}
- JAVA使用
try-catch
来处理异常
自定义异常类
- 区别
throw
和throws
关键字,参考博客:Java中关键字throw和throws的区别throw
:作用是抛出异常,一般是在代码块的内部throws
:是方法可能抛出异常的声明(用在声明方法时,表示该方法可能要抛出异常)
- 区别
四、断言
- 断言语句的语法格式
assert booleanExpression;
assert booleanExpression:messageException;
- 启用与关闭断言语句
java -ea mainClass
五、File类
文件的属性
File类 作用 public String getName() 获取文件的名字 public boolean canRead() 判断文件是否是可读的 public boolean canWrite() 判断文件是否可被写入 public boolean exists() 判断文件是否存在 public long length() 获取文件的长度 public String getAbsolutePath() 获取文件的绝对路径 public String getParent() 获取文件的父目录 public boolean isFile() 判断文件是否是一个普通文件 public boolean isDirectory() 判断文件是否是一个目录 public boolean isHidden() 判断文件是否是隐藏文件 public long lastModified() 获取文件最后修改的时间 创建目录:
public boolean mkdir()
列出目录中的文件:
调用方法 作用 public String[] list() 用字符串形式返回目录中的全部文件 public File[] listFiles() 用File对象形式返回目录中的全部文件 public String[] list(FilenameFilter filter) 用字符串返回由包含在目录中指定类型的所有文件 public File[] listFiles(FileFilter filter) 用File对象形式返回由包含在目录中指定类型的所有文件 文件的创建于删除
- 用File类创建文件对象:
File file =new file("C://myletter","letter.txt")
- 删除文件:
file.delete();
- 用File类创建文件对象:
运行可执行文件
- 使用
java.lang
包中的Runtime类
声明一个对象:Runtime ec;
- 使用该类的getRuntime()静态方法创建这个对象:
ec = Runtime.getRuntime;
- 使用
六、输入输出流
使用输入流步骤:
- 设定输入流的源
- 创建指向源的输入流
- 让输入流读取流中的数据
- 关闭输入流
使用输出流步骤:
- 给出输出流的目的地
- 创建指向目的地的输出流
- 让输出流把数据写入到目的地
- 关闭输出流
文件字节输入流:
- 构造方法:
FileInputStream(String name);
,FileInputStream(File file);
- 使用输入流读取字节:
read
- 关闭流:
close()
- 构造方法:
文件字节输出流:
- 构造方法:
FileInputStream(String name);
,FileInputStream(File file);
- 使用输入流读取字节:
write方法 目的 void write(int n) 输出流调用该方法向目的地写数据 void write(byte b[]) 输出流调用该方法向目的地写入一个字节数组 void write(byte b[],int off,int len) 给定字节数组中起始于偏移量off处取len个字节写到目的地 void close() 关闭输出流 - 关闭流:
close()
- 构造方法:
文件字符输入流,文件字符输入流:
- 构造方法:
FileReader(String filename): FileReader(File filename);
FileWrite(String filename):FileWrite(File filename);
FileWrite(String filename,boolean append);
FileWrite(File filename,boolean append);
七、其他流
- 随机流:
RandomAccessFile
- 字节数组流:
ByteArrayInputStream
,ByteArrayoutputStream
- 字符数组流:
CharArrayReader
,CharArrayWrite
- 数据流:
DataInputStream
,DataoutputStream
- 对象流:
ObjectInputStream
,ObjectoutputStream
代码调试中的问题和解决过程
上周安装完IDEA后就就一直使用IDEA编写代码,不得不说IDEA拥有的补全功能使得使用起来非常方便,有一键RUN自动编译运行,debug调试起来也更清晰方便。第七章代码没有出现什么问题,理解起来也不是很复杂,但第十章代码却大部分中枪,出现了很多问题,下面就一点点解决。
- Example10_1.java
运行出现问题:
发现问题:
解决问题:
- Example10_2.java
运行出现问题:
解决问题:
(方法一)将java文件复制到上一层文件夹才可以读出
(方法二)将源代码中的“.”改成“src/.”
- Example10_3.java
发现问题:
解决问题:
- 总结:IDEA中路径很重要!!不设置好可能会出现很多错误,如读取不到该文件等问题
代码托管
详见博客:https://gitee.com/BESTI-IS-JAVA-2018/20165223cn.git
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3000行 | 30篇 | 400小时 | |
第五周 | 1324/200 | 3/11 | 20/20 | 逐渐深入 |
参考资料
20165223 《JAVA程序设计》第五周学习总结的更多相关文章
- 201521123025<java程序设计>第五周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...
- Java程序设计第五周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...
- 20165223《JAVA程序设计》第二周学习总结
20165223 <JAVA程序设计>第二周学习总结 教材学习内容总结 第二章要点 标识符与关键字 基本数据类型 类型转换运算 输入输出数据 数组 第三章要点 运算符与表达式 语句概述 i ...
- 20165223《JAVA程序设计》第一周学习总结
20165223 <JAVA程序设计>第一周学习总结 教材学习内容总结 通过网站JAVA第一章视频教程.教材.老师所给的教程及网上查询进行学习 第一章要点 JAVA地位和特点 地位:网络. ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- mongoDB 安装和配置环境变量,超详细版本
下载mongoDB进行安装:https://www.mongodb.com/ 到Community Se ...
- 网络编程--使用UDP发送接收数据
package com.zhangxueliang.udp; import java.io.IOException; import java.net.DatagramPacket; import ja ...
- v-show 与 v-if区别
关于条件渲染 所谓条件渲染,就是根据不同的条件,使用不同的模板来生成 html. 在 Vue.js 中,使用 v-if 和 v-show 指令来控制条件渲染. 区别 v-show 会在app初始化的时 ...
- C# Note22: 《Effective C#》笔记
参考:<Effective C#>快速笔记(一)- C# 语言习惯 参考:<Effective C#>快速笔记(二)- .NET 资源托管 参考:<Effective C ...
- 校园电商项目2(基于SSM)——模块设计
步骤一:各模块职责 步骤二:实体类设计 package com.figsprite.o2o.bean; import java.util.Date; public class Area { priva ...
- spring boot+mybatis+generator生成domain大小写问题
之前遇到一个问题,用generator生成数据库对应的domain,以前都是好好的,那天突然生成的domain都是小写的,因为我数据库里是大写的,后来找到解决办法, <table tableNa ...
- @Autowired 与@Resource的区别(详细)
参考:@Autowired 与@Resource的区别(详细) spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@Pos ...
- 命名自我规约manual
前端: 所有文件命名都小写,多个单词连接使用 “-” 变量命名规则还是驼峰式,或者在前面加个 “_” SQL: MySQL: 所有命名都小写,无论库.表.还是字段等等,都小写 多个单词之间的分隔,使用 ...
- python易混易乱(2)
字符串切割成列表: 以str为分隔符切片mystr,如果maxsplit有指定值,则仅分割maxsplit个字符串,得到maxsplit个字符串的列表 利用字符串的split() 方法 >> ...
- jQuery插件开发的基本形式
(function ($, window, document, undefined) { "use strict"; var defaults = { pageIndex: 0, ...