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入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- PyCharm3.0默认快捷键
PyCharm3.0默认快捷键(翻译的) 1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性) Ctrl + Alt + Space 快速导入任意类 Ctrl + S ...
- js-cookie和session
###1.cookie 含义: 存储在访问者的计算机中的变量,即存储在客户端 创建一个cookie /* getCookie方法判断document.cookie对象中是否存有cookie,若有则判断 ...
- 6 Prefer and Would rather
1 prefer 使用 "prefer" 用来表明通常喜欢某件事甚于另一件事.说话者喜欢打高尔夫球更甚于喜欢打网球."prefer" 的后面可以接名词(&quo ...
- Azure系列2.1.11 —— CloudBlobContainer
(小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...
- Linux基础学习(14)--日志管理
第十四章——日志管理 一.日志管理简介 1.日志服务: 2.常见日志的作用: 二. rsyslogd日志服务 1.日志文件格式: 2./etc/rsyslog.conf配置文件: 三.日志轮替 1.日 ...
- RocketMQ消息队列安装
一.官方安装文档 http://rocketmq.apache.org/docs/quick-start/ 下载地址 https://github.com/apache/rocketmq/releas ...
- python数据结构与算法第三天【时间复杂度计算方法】
最优时间复杂度(不可靠) 最坏时间复杂度(保证) 平均时间复杂度(平均状况) 不同语句的时间复杂度: (1)顺序语句:使用加法 (2)循环语句:使用乘法 (3)分支语句:使用坏时间复杂度 例如:如下代 ...
- 老男孩python学习自修第十三天【md5加密】
示例代码如下: hashlib_test.py #!/usr/bin/env python # _*_ coding:UTF-8 _*_ import hashlib def genPasswd(na ...
- QTP自动化测试-按行取值(win10下输入?问题)-笔记20181119
在win10下运行qtp10 所有输入汉字都会为?,在win7下可以.查询了百度.bingo没有解决问题.当前的解决办法 ,在脚本中使用DataTable取数据值,添加2行记录,一行使用汉字,一行使用 ...
- qtp 自动货测试桌面程序-笔记(使用参数 parameters)
dtGlobalSheet:运行整个test时候使用的参数(心得:可以将公共使用的测试数据放于全局表格中,所有action脚本都可以使用同一个数据,如供应商.客户.商品) dtActionSheet: ...