学号 2016-2017-2 《Java程序设计》第五周学习总结

教材学习内容总结

第七章:内部类与异常类

  • 内部类:java支持在类中定义另一个类,这个类为内部类,包含内部类的类称为外嵌类。
  • 理解内部类与外嵌类。
  • Java编译器生成的内部类的字节码文件为“外嵌类名$内部类名”
  • 与子类有关的匿名类:Java允许直接使用一个类的子类的类体创建一个子类对象,此类体被认为是一个子类去掉类声明后的类体,称作匿名类。
  • 与接口有关的匿名类:Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了Computer接口的类去掉类声明后的类体,称为匿名类。
  • 异常类:Java允许定义方法时声明该方法调用过程中可能出现的异常,就允许方法调用过程中抛出异常对象,终止当前方法的继续执行。
  • try-catch语句:处理异常。格式如下:
  1. try {
  2. 包含可能发生异常的语句
  3. }
  4. catch (ExceptionSubClass1 e) {
  5. 发生异常后的处理
  6. }
  7. catch (ExceptionSubClass2 e) {
  8. 发生异常后的处理
  9. }
  • 自定义异常类:编写程序时可以扩展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对象的构造方法为:
  1. File(String filename);
  2. File(String directoryPath,String filename);
  3. File(File dir,String filename);
  4. 其中,filename是文件名字,directoryPath是文件的路径,dir为一个目录。使用File(String filename)创建文件时,该文件被认为与当前应用程序在同一个目录中。
  • 文件的属性:常用File类的下列方法获取文件本身的信息。
  1. public String getName()
  2. public boolean canRead()
  3. public boolean canWrite()
  4. public boolean exists()
  5. public long length()
  6. public String getAbsolutePath():获取文件的绝对路径。
  7. public String getParent()
  8. public boolean isFile()
  9. public boolean isDirectory
  10. public boolean isDiractory
  11. public boolean isHidden()
  12. public long lastModified():获取文件最后的修改时间
  • 目录:
  1. 创建目录:File对象调用方法public boolean mkdir()创建一个目录。
  2. 如果File对象是一个目录则:public String []list()用字符串形式返回目录下的全部文件;public File[]listFiles()用File对象形式返回目录下的全部文件
  3. FilenameFilter是一个接口,该接口有一个方法:public boolean accept(File dir,String name);需要调用时在()里加上FilenameFilter obj
  • 文件的创建与删除:使用File创建一个文件对象File file=new File("c:\\myletter","letter.txt");

  • 运行可执行文件

  1. 声明一个对象:Runtime ec;
  2. 创建对象:ec = Runtime.getRuntime();
  • 文件的字节输入流、文件的字节输出流及相关的写入,写出方法详见书本。
  • 文件的字符输入流、文件的字符输出流及相关的写入,写出方法详见书本。
  • 对于缓冲流的理解学习:
  1. import java.io.*;
  2. import java.util.*;
  3. public class Dome07 {
  4. public static void main(String[] args) {
  5. File fRead=new File("english.txt");//给出输入流的目的地
  6. File fWrite=new File("englishCount.txt");//给出输出流的目的地
  7. try {//程序必须在try-catch语句中的try块部分创建输入流,在catch处处理该异常
  8. Writer out=new FileWriter(fWrite);//指向目的地的输出流
  9. BufferedWriter bufferWriter=new BufferedWriter(out);//把文件字符输出流out作为BufferWrite流的目的地
  10. Reader in=new FileReader(fRead);//指向目的地的输入流
  11. BufferedReader bufferRead=new BufferedReader(in);//把文件字符输入流in作为BufferRead流的目的地
  12. String str=null;
  13. while((str=bufferRead.readLine())!=null) {//bufferRead调用readLine方法读取一行文本行,直至为空。
  14. StringTokenizer fenxi=new StringTokenizer(str);//StringTokenizer类进行分解str,使用默认分隔标记。
  15. int count=fenxi.countTokens();//调用方法,得到分析器中计数变量的值。
  16. str=str+"句子中单词的个数:"+count;
  17. bufferWriter.write(str);//使用write(String s,int off,int len)方法把字符串s写到englishCount.txt中
  18. bufferWriter.newLine();//向文件写入回行符的方法
  19. }
  20. bufferWriter.close();//关闭上层流
  21. out.close();//调用close()方法关闭时,底层流会将缓存的内容写入目的地
  22. in=new FileReader(fWrite);//指向目的地的输入流,为了将fWrite里的内容打印
  23. bufferRead=new BufferedReader(in);
  24. String s=null;
  25. System.out.println(fWrite.getName()+"内容:");
  26. while((s=bufferRead.readLine())!=null) {
  27. System.out.println(s);
  28. }
  29. bufferRead.close();
  30. in.close();
  31. }
  32. catch(IOException e) {
  33. System.out.println(e.toString());
  34. }
  35. }
  36. }
  • 随机流:RandomAccessFile类创建的流称为随机流,创建的流的指向既可以作为流的源,也可以作为流的目的地
  • 随机流的常用方法详见书本。

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

  • 问题1:接口的理解P151
  • 问题1解决方案:
  1. abstract class MotorVehicles { //抽象类,关键字为abstract,封装了行为标准
  2. abstract void brake();
  3. /*抽象类只能定义常量、抽象方法。并且abstract方法必须为实例方法,
  4. 实例方法是指方法类型前面不加关键字static修饰的方法*/
  5. }
  6. interface MoneyFare { //接口MoneyFare
  7. void charge(); //接口中的方法,在类中必须重写
  8. }
  9. interface ControlTemperature { //接口ControlTemperature
  10. void controlAirTemperature();//接口中的方法,在类中必须重写
  11. }
  12. class Bus extends MotorVehicles implements MoneyFare { //子类Bus,实现接口MoneyFare
  13. void brake() { //抽象类方法的引用
  14. System.out.println("公共汽车技术");
  15. }
  16. public void charge() { //重写接口的方法,并且访问权限必须为public
  17. System.out.println("公共汽车:一元/张,不计公里数");
  18. }
  19. }
  20. class Taxi extends MotorVehicles implements MoneyFare,ControlTemperature {//子类Taxi,实现接口MoneyFare,ControlTemperature
  21. void brake() { //抽象类方法的引用
  22. System.out.println("出租车使用技术");
  23. }
  24. public void charge() { //重写接口的方法,并且访问权限必须为public
  25. System.out.println("出租车:2元/公里,起步价3公里");
  26. }
  27. public void controlAirTemperature() { //重写接口的方法,并且访问权限必须为public
  28. System.out.println("出租车安装了空调");
  29. }
  30. }
  31. class Cinema implements MoneyFare,ControlTemperature { //类Cinema,实现接口MoneyFare,ControlTemperature
  32. public void charge() { //重写接口的方法,并且访问权限必须为public
  33. System.out.println("电影院:门票,10元/张");
  34. }
  35. public void controlAirTemperature() { //重写接口的方法,并且访问权限必须为public
  36. System.out.println("电影院安装了空调");
  37. }
  38. }
  39. public class Dome03 {
  40. public static void main(String args[]) {
  41. Bus bus101=new Bus();//创建对象:对象的声明、分配变量。
  42. Taxi buleTaxi=new Taxi();//创建对象:对象的声明、分配变量。
  43. Cinema redStarCinema=new Cinema();//创建对象:对象的声明、分配变量。
  44. MoneyFare fare;//接口回调,声明一个变量,此时fare为一个空接口
  45. ControlTemperature temperature;//接口回调,声明一个变量,此时temperature为一个空接口
  46. fare=bus101;//将上述bus101对象的引用赋值给fare接口变量
  47. bus101.brake();//类所声明的方法的调用
  48. fare.charge();//fare接口可以调用类实现的接口方法,即charge方法
  49. fare=buleTaxi;//将上述buleTaxi对象的引用赋值给fare接口变量
  50. temperature=buleTaxi;//将上述buleTAxi对象的引用赋值给temperature接口变量
  51. buleTaxi.brake();//类所声明的方法的调用
  52. fare.charge();//fare接口可以调用类实现的接口方法,即charge方法
  53. temperature.controlAirTemperature();//temperature接口可以调用类实现的接口方法,即controlAirTemperature方法
  54. fare=redStarCinema;//将上述redStarCinema对象的引用赋值给fare接口变量
  55. temperature=redStarCinema;//将上述redStarCinema对象的引用赋值给temperature接口变量
  56. fare.charge();//fare接口可以调用类实现的接口方法,即charge方法
  57. temperature.controlAirTemperature();//temperature接口可以调用类实现的接口方法,即controlAirTemperature方法
  58. }
  59. }

代码托管

本周代码只敲了四五百行...............

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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程序设计》第五周的更多相关文章

  1. 201521123025<java程序设计>第五周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...

  2. Java程序设计第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...

  3. 20165324 《Java程序设计》第九周学习总结

    学号 20165324 <Java程序设计>第九周学习总结 教材学习内容总结 第十三章 Java网络编程 URL类 使用URL创建对象的应用程序称为客户端 一个URL对象封装一个具体资源的 ...

  4. 20165324《Java程序设计》第一周

    20165324<Java程序设计>第一周学习总结 教材学习内容总结 第一章:Java入门 重点一.编写Java程序 第一步编写源文件,(注:第一步中Java严格区分大小写:Java源文件 ...

  5. 201671010140. 2016-2017-2 《Java程序设计》java学习第五周

    java学习第五周心得体会        本周,是Java学习第五周,随着时间推移,随着课本内容的推进,我们接触到的程序也开始变得越来越复杂,不再是二三章那些用来练手的小程序了,这一点,在我们的例题运 ...

  6. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  7. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  8. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  9. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  10. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

随机推荐

  1. 在J2EE中属于Web层的组件有(选择1项)

    在J2EE中属于Web层的组件有(选择1项) A. HTML B. EJB C. Applet D. JSP 解答:D

  2. 监听过多,会抛tooManyListener例外

    在生成一个窗体的时候,点击窗体的右上角关闭按钮激发窗体事件的方法:窗体Frame为事件源,WindowsListener接口调用Windowsclosing(). 为了配合后面的实现,我们必须将Win ...

  3. C#三种模拟自动登录和提交POST信息的实现方法【转】

    网页自动登录(提交Post内容)的用途很多,如验证身份.程序升级.网络投票等,以下是用C#实现的方法.       网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以 ...

  4. [转载]Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试 -2

    自己的代码 import unittest # import HTMLTestRunner_cn as HTMLTestRunner import xmlrunner import sys sys.p ...

  5. java---sychronized的深入理解

    synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D ...

  6. MathType中如何快速输入空心字母

    MathType输入数学公式时非常方便有效的,在文档中涉及到数学公式或者符号时都是使用MathType来进行的,因为它比Office自带的公式编辑器功能更为完善,使用起来更快捷.在数学公式中,在不同的 ...

  7. HttpServletRequest和HttpServletResponse简介

    http://blog.csdn.net/tong_xinglong/article/details/12972819

  8. ItcastOA_整体说明_准备环境

    1. 整体说明 1.1. 项目说明 1.1.1. OA概述 OA是Office Automation的缩写,本意为利用技术的手段提高办公的效率,进而实现办公的自动化处理.实现信息化.无纸化办公,可方便 ...

  9. flask模块

    import flask, json #把当前的文件当成一个服务 server = flask.Flask(__name__) @server.route('/index', methods=['ge ...

  10. ITIL信息技术基础架构库

    服务是什么? 服务是向客户提供价值的一种手段,使客户不用承担特定的成本和风险就可以获得所期望的结果 PS:运维工作中需要实时反馈 RACI RACI是一个相对直观的模型,用以明确组织变革过程中的各个角 ...