20165324《Java程序设计》第五周
学号 2016-2017-2 《Java程序设计》第五周学习总结
教材学习内容总结
第七章:内部类与异常类
- 内部类:java支持在类中定义另一个类,这个类为内部类,包含内部类的类称为外嵌类。
- 理解内部类与外嵌类。
- Java编译器生成的内部类的字节码文件为“外嵌类名$内部类名”
- 与子类有关的匿名类:Java允许直接使用一个类的子类的类体创建一个子类对象,此类体被认为是一个子类去掉类声明后的类体,称作匿名类。
- 与接口有关的匿名类:Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了Computer接口的类去掉类声明后的类体,称为匿名类。
- 异常类:Java允许定义方法时声明该方法调用过程中可能出现的异常,就允许方法调用过程中抛出异常对象,终止当前方法的继续执行。
- try-catch语句:处理异常。格式如下:
try {
包含可能发生异常的语句
}
catch (ExceptionSubClass1 e) {
发生异常后的处理
}
catch (ExceptionSubClass2 e) {
发生异常后的处理
}
- 自定义异常类:编写程序时可以扩展Exception类来定义自己的异常类,然后根据程序的需要来规定哪些方法产生这样的异常。
- throw是Java的关键字,作用是抛出异常。throws和throw是两个不同的关键字
- 一个方法在声明时,可以使用throws关键字声明要产生的若干个异常,并在方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw关键字抛出该异常对象。
- 断言:一般用于程序不准备通过捕获异常来处理的错误。语法格式为:
assert booleanExpression;或者为:assert booleanExpression:messageException; - 启用与关闭断言语句:调试程序时可以使用-ea启用断言语句如:
java -ea mainClass
第十章:输入、输出流
java.io包(I/O流库)提供大量的流类。输入流为:抽象类InputStream(字节输入流),抽象类Reader(字符输入流)的子类;输出流为:抽象类OutStream(字节输出流),抽象类Write(字符输出流)的子类。- Filel类:File类的对象主要用来获取文件本身的信息。创建一个File对象的构造方法为:
File(String filename);File(String directoryPath,String filename);File(File dir,String filename);- 其中,
filename是文件名字,directoryPath是文件的路径,dir为一个目录。使用File(String filename)创建文件时,该文件被认为与当前应用程序在同一个目录中。
- 文件的属性:常用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 isDirectorypublic boolean isDiractorypublic boolean isHidden()public long lastModified():获取文件最后的修改时间
- 目录:
- 创建目录:File对象调用方法
public boolean mkdir()创建一个目录。 - 如果File对象是一个目录则:
public String []list()用字符串形式返回目录下的全部文件;public File[]listFiles()用File对象形式返回目录下的全部文件 FilenameFilter是一个接口,该接口有一个方法:public boolean accept(File dir,String name);需要调用时在()里加上FilenameFilter obj。
文件的创建与删除:使用File创建一个文件对象
File file=new File("c:\\myletter","letter.txt");运行可执行文件
- 声明一个对象:
Runtime ec; - 创建对象:
ec = Runtime.getRuntime();
- 文件的字节输入流、文件的字节输出流及相关的写入,写出方法详见书本。
- 文件的字符输入流、文件的字符输出流及相关的写入,写出方法详见书本。
- 对于缓冲流的理解学习:
import java.io.*;
import java.util.*;
public class Dome07 {
public static void main(String[] args) {
File fRead=new File("english.txt");//给出输入流的目的地
File fWrite=new File("englishCount.txt");//给出输出流的目的地
try {//程序必须在try-catch语句中的try块部分创建输入流,在catch处处理该异常
Writer out=new FileWriter(fWrite);//指向目的地的输出流
BufferedWriter bufferWriter=new BufferedWriter(out);//把文件字符输出流out作为BufferWrite流的目的地
Reader in=new FileReader(fRead);//指向目的地的输入流
BufferedReader bufferRead=new BufferedReader(in);//把文件字符输入流in作为BufferRead流的目的地
String str=null;
while((str=bufferRead.readLine())!=null) {//bufferRead调用readLine方法读取一行文本行,直至为空。
StringTokenizer fenxi=new StringTokenizer(str);//StringTokenizer类进行分解str,使用默认分隔标记。
int count=fenxi.countTokens();//调用方法,得到分析器中计数变量的值。
str=str+"句子中单词的个数:"+count;
bufferWriter.write(str);//使用write(String s,int off,int len)方法把字符串s写到englishCount.txt中
bufferWriter.newLine();//向文件写入回行符的方法
}
bufferWriter.close();//关闭上层流
out.close();//调用close()方法关闭时,底层流会将缓存的内容写入目的地
in=new FileReader(fWrite);//指向目的地的输入流,为了将fWrite里的内容打印
bufferRead=new BufferedReader(in);
String s=null;
System.out.println(fWrite.getName()+"内容:");
while((s=bufferRead.readLine())!=null) {
System.out.println(s);
}
bufferRead.close();
in.close();
}
catch(IOException e) {
System.out.println(e.toString());
}
}
}
- 随机流:RandomAccessFile类创建的流称为随机流,创建的流的指向既可以作为流的源,也可以作为流的目的地
- 随机流的常用方法详见书本。
教材学习中的问题和解决过程
- 问题1:接口的理解P151
- 问题1解决方案:
abstract class MotorVehicles { //抽象类,关键字为abstract,封装了行为标准
abstract void brake();
/*抽象类只能定义常量、抽象方法。并且abstract方法必须为实例方法,
实例方法是指方法类型前面不加关键字static修饰的方法*/
}
interface MoneyFare { //接口MoneyFare
void charge(); //接口中的方法,在类中必须重写
}
interface ControlTemperature { //接口ControlTemperature
void controlAirTemperature();//接口中的方法,在类中必须重写
}
class Bus extends MotorVehicles implements MoneyFare { //子类Bus,实现接口MoneyFare
void brake() { //抽象类方法的引用
System.out.println("公共汽车技术");
}
public void charge() { //重写接口的方法,并且访问权限必须为public
System.out.println("公共汽车:一元/张,不计公里数");
}
}
class Taxi extends MotorVehicles implements MoneyFare,ControlTemperature {//子类Taxi,实现接口MoneyFare,ControlTemperature
void brake() { //抽象类方法的引用
System.out.println("出租车使用技术");
}
public void charge() { //重写接口的方法,并且访问权限必须为public
System.out.println("出租车:2元/公里,起步价3公里");
}
public void controlAirTemperature() { //重写接口的方法,并且访问权限必须为public
System.out.println("出租车安装了空调");
}
}
class Cinema implements MoneyFare,ControlTemperature { //类Cinema,实现接口MoneyFare,ControlTemperature
public void charge() { //重写接口的方法,并且访问权限必须为public
System.out.println("电影院:门票,10元/张");
}
public void controlAirTemperature() { //重写接口的方法,并且访问权限必须为public
System.out.println("电影院安装了空调");
}
}
public class Dome03 {
public static void main(String args[]) {
Bus bus101=new Bus();//创建对象:对象的声明、分配变量。
Taxi buleTaxi=new Taxi();//创建对象:对象的声明、分配变量。
Cinema redStarCinema=new Cinema();//创建对象:对象的声明、分配变量。
MoneyFare fare;//接口回调,声明一个变量,此时fare为一个空接口
ControlTemperature temperature;//接口回调,声明一个变量,此时temperature为一个空接口
fare=bus101;//将上述bus101对象的引用赋值给fare接口变量
bus101.brake();//类所声明的方法的调用
fare.charge();//fare接口可以调用类实现的接口方法,即charge方法
fare=buleTaxi;//将上述buleTaxi对象的引用赋值给fare接口变量
temperature=buleTaxi;//将上述buleTAxi对象的引用赋值给temperature接口变量
buleTaxi.brake();//类所声明的方法的调用
fare.charge();//fare接口可以调用类实现的接口方法,即charge方法
temperature.controlAirTemperature();//temperature接口可以调用类实现的接口方法,即controlAirTemperature方法
fare=redStarCinema;//将上述redStarCinema对象的引用赋值给fare接口变量
temperature=redStarCinema;//将上述redStarCinema对象的引用赋值给temperature接口变量
fare.charge();//fare接口可以调用类实现的接口方法,即charge方法
temperature.controlAirTemperature();//temperature接口可以调用类实现的接口方法,即controlAirTemperature方法
}
}
代码托管


本周代码只敲了四五百行...............
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 203/203 | 4/4 | 15/15 | |
| 第二周 | 326/529 | 2/6 | 12/27 | |
| 第三周 | 1000/1500 | 2/8 | 20/47 | |
| 第四周 | 800/2300 | 3/11 | 20/67 | |
| 第五周 | 500/2800 | 2/13 | 18/85 |
参考资料
20165324《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源代 ...
- 20165324 《Java程序设计》第九周学习总结
学号 20165324 <Java程序设计>第九周学习总结 教材学习内容总结 第十三章 Java网络编程 URL类 使用URL创建对象的应用程序称为客户端 一个URL对象封装一个具体资源的 ...
- 20165324《Java程序设计》第一周
20165324<Java程序设计>第一周学习总结 教材学习内容总结 第一章:Java入门 重点一.编写Java程序 第一步编写源文件,(注:第一步中Java严格区分大小写:Java源文件 ...
- 201671010140. 2016-2017-2 《Java程序设计》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 ...
随机推荐
- IoC是一个很大的概念,可以用不同的方式实现。其主要形式有两种:
IoC是一个很大的概念,可以用不同的方式实现.其主要形式有两种: ◇依赖查找:容器提供回调接口和上下文条件给组件.EJB和ApacheAvalon都使用这种方式.这样一来,组件就必须使用容器提供的AP ...
- C++之拷贝构造函数、深拷贝、浅拷贝
C++ Code 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...
- powershell---高级函数的介绍
https://guhuajun.wordpress.com/2009/05/11/windows-powershell-v2-介绍(5)-高级函数(上)/ https://guhuajun.word ...
- Android API Guides---Bluetooth
Bluetooth Android平台包含蓝牙网络协议栈,它同意设备以无线方式与其他蓝牙设备进行数据交换的支持.应用程序框架提供了訪问通过Android蓝牙API的蓝牙功能.这些API使应用程序无线方 ...
- 编程之美 set 5 寻找数组中最大值和最小值
解法 1. 设置 min, max 两个变量, 然后遍历一遍数组, 比较次数为 2*N 2. 依然设置 min, max 两个变量并遍历数组, 但将遍历的 step 设置为 2, 比较次数为 1.5 ...
- __file__
__file__ 是 python 的内置变量它的值等于文件名本身 [root@localhost ~]$ cat test.py #!/usr/bin/env python print(__file ...
- iOS 7 新特性:视图控制器切换API
本文转载至 http://blog.jobbole.com/51588/ 本文由 伯乐在线 - studentdeng 翻译自 Chris Eidhof.欢迎加入技术翻译小组.转载请参见文章末尾处的要 ...
- IOS7开发~新UI学起(二)
本文转载至 http://blog.csdn.net/lizhongfu2013/article/details/9133281 1.UINavigationBar: NSDictionary* at ...
- 【BZOJ2622】[2012国家集训队测试]深入虎穴 次短路
[BZOJ2622][2012国家集训队测试]深入虎穴 Description 虎是中国传统文化中一个独特的意象.我们既会把老虎的形象用到喜庆的节日装饰画上,也可能把它视作一种邪恶的可怕的动物,例如“ ...
- Python闲谈(一)mgrid慢放
不论是利用Mayavi还是matplotlib绘制三维图表,里面都用到了numpy中的一个函数叫mgrid.本次博客我简单地讲一下mgrid是干什么用的,以及一个三维曲面是如何绘制出来的. 首先说明一 ...