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

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

学习总结

  • 在使用IDEA时,由于我之前编写的代码都是使用GBK编码,使用IDEA打开时,由于IDEA默认为UTF-8,代码会出现中文乱码,这时候可以使用如下方法,将IDEA的编码改成GBK

教材内容总结:

第七章 内部类与异常类

一、 内部类与匿名类

  • 内部类:

    1.内部类可以使用外嵌类的成员变量和方法。

    2.类体中不可以声明类变量和类方法。

    3.内部类仅供外嵌类使用。

    4.类声明可以使用static修饰,static内部类不能操作外嵌类中的实例成员变量。

    :非内部类不可以是static类。

  • 匿名类:

    1.匿名类一定是内部类。

    2.可以使用外嵌类的成员变量和方法。

    3.不能声明类变量和类方法。

    4.必须使用父类的构造方法。

    5.可以直接使用父类的方法,也可重写。

用bank的一个子类(匿名类)创建对象

new Bank() {        //使用父类的构造方法
 匿名类的类体
};                           //**注意:结尾加分号**

与接口有关的匿名类

new Computable() {
 实现接口的匿名类的类体         //**类体必须要重写接口中的全部方法**
};

二、异常类

  • 异常是指程序运行时可能出现的一些错误。
  • public static int parseInt(String s)可以将“数字”格式的字符串转化为 int 型数据。
  • try - catch 语句

    `try { 包含可能发生异常的语句 } catch(ExceptionSubClass1 a) { ... } catch(ExceptionSubClass1 b) { ... }

  • 一旦try部分抛出异常,或调用某个可能抛出异常对象的方法,并且该方法抛出了异常对象,那么try部分将立刻结束执行,转向相应的catch部分。程序可以将发生异常后的处理放在catch部分。
  • try - catch语句可以由几个catch组成,分别处理发生的相应异常。
  • 各个catch参数中的异常类都是Exception的某个子类,表示try部分可能发生的异常,这些子类之间不能有父子关系,否则保留一个含有父类参数的catch即可。
  • 自定义异常类的步骤:

    1.定义自己的异常类(Exception的子类);

    2.在可能出现异常的方法中,声明时使用throws关键字声明要产生的若干个异常,并在方法体中具体给出产生异常的操作,用throw抛出异常对象。

    3.在程序中使用try-catch块语句调用可能发生异常的方法。

  • finally语句
    • 如果在try-catch语句中执行了return语句,那么finally子语句依旧会被执行。
    • try-catch语句中执行了程序退出代码,执行System.exit(0);那么不执行finally子语句。
三、断言
  • 程序正式运行时,断言语句自动关闭,可以使用java -ea 文件名;
  • 程序调试阶段,断言语句发挥正常作用;
  • 断言语句的两种格式
    • assert bolleanException:当bolleanException的值是true时,程序从断言语句处继续执行;值是false时,程序从断言语句处停止执行。
    • assert blooeanException:messageException:当bolleanException的值是true时,程序从断言语句处继续执行;值是false时,程序从断言语句处停止执行,并输出messageException表达式的值。

第十章 输入、输出流

  • 输入流的指向称为它的源,程序通过输入流读取源中的数据
  • 输出流的指向称为它的目的地,程序通过输出流把数据传送到目的地

一、File

  • File类的对象主要用来获取文件本身一些信息,不涉及对文件的读写操作。
  • 构造方法 :

    File(String filename)

    File(String directoryPath,String filename)

    File(File dir,String filename)

  • 文件的属性:常使用File类的一些方法获取文件本身的一些信息。
  • 创建目录:File对象调用方法public boolean mkdir()创建一个目录,成功返回true,否则(该目录已存在)返回false。
  • 运行可执行文件:Runtime ec = Runtime.getRuntime();
  • 使用输入流步骤:

1.设定输入流的源;

2.创建指向源的输入流;

3.让输入流读取源中的数据;

4.关闭输入流;

注:程序必须在try-catch语句中的try块部分创建输入流,在catch块部分检测并处理这个异常。

  • 输出流步骤与输入流类似
  • 读取 :输入流读取 int read方法,输出流读取void write方法。
  • 关闭流:输入流in.close();,输出流void.close();
  • 缓冲流

1.BufferedReaderBufferedWriter类创建的对象称为缓冲输入、输出流,二者增强了读写文件的能力。

2.BufferedReader流和BufferedWriter流,二者的源和目的地必须是字符输入流和输出流。

3.构造方法BufferedReader(Reader in);``BufferedWriter(Writer out);

  • 随机流

    1.RandomAccessFile类创建的流称为随机流,可以从这个流中读取文件的数据,也可以通过这个流写入数据到文件。

    2.RandomAccessFile流指向文件时,不刷新文件。

  • 数组流
  • 数据流
  • 对象流
  • 使用Scanner类和正则表达式来解析文件的特点是以时间换取空间,即解析的速度相对比较慢,但节省内存

教材中问题与解决过程

  • 问题1:为什么要使用匿名类:
  • 解决过程:如果一个方法的参数类型是A类,用户希望向方法传递A的子类对象,但系统没有提供符合要求的子类,那么用户在编写代码时就可以考虑使用匿名类。

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

  • 问题1:运行Example7_2时报错

  • 解决过程:检查后发现,使用输出方法时,习惯性的使用了System.out.println而正确的代码是System.out.printf
  • 问题2:运行Example7_7时出现以下问题

  • 解决过程:仔细检查代码后发现,在编码时多写了一个“}”,导致主类没办法被识别,使用IDEA中的代码格式化也没有发现错误。
  • 问题3:自己编写课后习题第四大题,使用断言,本应该当输入数字大于100或小于0时,终止执行,但实际运行却出现如下错误:

  • 解决过程:重新学习断言相关知识点时发现,当断言判断条件为true时,程序继续执行,为false时,才会停止执行。而我第一遍看的时候没有记清楚,刚好将判断条件写反了,导致程序不能运行,改正过后,就可以正常运行了。结果如下图:

  • 问题4:调试Example10_2时,运行后没有输出结果。
  • 解决过程:看书中相关知识后,发现我输入流打开的目录中没有.java类型的文件,在这个目录中添加.java类型的文件,就可以正常运行了。
  • 问题5:调试Example10_4时,运行提示以下错误:

  • 解决过程:问题在于打开文件的路径不正确,将Example10_4.java改为src/Example10_4.java就可以正常运行了。
  • 问题6:运行Example10_17时,对话框不会操作问题,实际输出的对话框与书上的截图有差距

  • 解决过程:需要点击左上角的“文件”下拉菜单的“打开”,才能得到书上截图的效果。同时我发现如果把 “楷体_gb2312” 改为 “UTF-8” 不会影响窗口的操作性。

码云链接

https://gitee.com/besti-is-java-2018/20165318_sun_xiaoxuan

代码截图

原文地址:https://www.cnblogs.com/sunxiaoxuan/p/8679423.html

时间: 2024-10-10 11:26:47

20165318 2017-2018-2 《Java程序设计》第五周学习总结的相关文章

20165318 2017-2018-2 《Java程序设计》第一周学习总结

20165318 2017-2018-2 <Java程序设计>第一周学习总结 教材内容学习总结 第一章主要对Java平台进行了简单的介绍,并讲解了如何搭建Java环境. Java平台概论 通过课本,测验,查询资料我了解到Java的有关内容如下: Java历史 1990年Sun公司成立了有James Gosling领导的开发小组,开始正致力于开发一种可移植的.跨平台的语言,该语言能生成正确运行于各种操作系统及各种CPU芯片上的代码.1995年5月Sun公司推出的Java Development

20165318 2017-2018-2 《Java程序设计》第九周学习总结

20165318 2017-2018-2 <Java程序设计>第九周学习总结 目录 学习过程遇到的问题及总结 教材学习内容总结 第13章 Java网络编程 代码托管 代码统计 学习过程遇到的问题及总结 Q1:运行课本例子4时,代码中为汉字,但同样的输出的字符为乱码. 解决方法:检查后发现,使用的编码方式不一致,其他源文件使用的是GBK,而运行的Client4使用的是UTF-8,将这个源文件也改为GBK编码,就可以正确运行了. Q2:运行课本例子4后又运行例子3时,提示以下问题. 解决方法:我猜

20145311 《Java程序设计》第九周学习总结

20145311 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1JDBC 16.1.1JDBC简介 JDBC(Java DataBase Connectivity)是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性. 厂商在操作JDBC驱动程序时,依方式可将驱动程序分为4种类型: ·Type 1:JDBC-ODBC Bridge Driver·Type 2:Native API

20165324《Java程序设计》第一周学习总结

20165324<Java程序设计>第一周学习总结 教材学习内容总结 第一章:Java入门 重点一.编写Java程序 第一步编写源文件,(注:第一步中Java严格区分大小写:Java源文件的扩展名是*.java一般Java源文件名与类名一样.保存类型为所有文件.) 第二步编译,(注:第二步中使用Javac命令来编译源文件如: javac Hello.java 编译之后会生成一个字节码文件,字节码文件的文件名和类名相同,字节码文件的扩展名是*.class). 第三步运行,(注:第三步中使用jav

20165203 2017-2018-2 《Java程序设计》第一周学习总结

20165203 2017-2018-2<Java程序设计>第一周学习总结 教材学习内容总结 (一)Java的地位 Java是面向对象编程,并涉及网络.多线程等重要的基础知识,是一门很好的面向对象的语言. (二)Java的特点 简单 面向对象 平台无关 多线程 动态 (三)Java三大平台 Java SE Java EE Java ME (四)Java SE的四个组成部分 JVM: Java虚拟机,包含在JRE中 JRE:Java执行环境,运行Java程序必需 JDK: 包括JRK及开发过程中

20165208 2017-2018-2 《Java程序设计》第九周学习总结

20165208 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十三章 URL类 URL对象包含三部分信息:协议.地址和资源 创建URL对象两种方法: public URL (String spec) throws MalformedURLException public URL(String protocol,String host,String file) throws MalformedURLException 使用字符串初始化一个URL对象URL ur

20165235 祁瑛 2018-4 《Java程序设计》第九周学习总结

20165235 祁瑛 2018-4 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 UR类是java.net包中的一个重要类,使用URL创建的对象的应用程序称作称作客户端程序. 一个URL类用如下的构造方法来创建一个类: public URL(String spec) throws MalformedURLException URL创建的对象是http协议,所包含的资源是默认的资源(主页) URL对象可以通过调用InputStream openStream()方法可以返回一个

20155336 2016-2017-2《JAVA程序设计》第二周学习总结

20155336 2016-2017-2 <JAVA 程序设计>第二周学习总结 教材学习内容 1: GIT版本检测 2: JAVA中基本类型 整数 字节 浮点数 字符 布尔(▲) 通过API可以得知各个类型可存储的数值范围 public class Range {public static void main(String[] args){ //byte.short.int.long的范围 System.out.printf("%d~%d%n", Byte.MIN_VALU

20145201 《Java程序设计》第一周学习总结

# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学起,发现并不是自己想想中那么难,只要一步一个脚印,每周有自己的计划,并按照计划按部就班的完成,最后一定会拥有自己的小成果的. 1.1Java不只是语言 Java经过多年的版本更新后,最新的版本是Java SE8. 在java发展的过程中,它的应用领域越来越广,根据不同级别的应用开发区分了不同的应用版本,最终j

20145326蔡馨熠《Java程序设计》第一周学习总结

20145326蔡馨熠 <Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之前c语言学得也不是特别好.可我就是对hdl和java特别感兴趣(之前在我的问卷调查报告里面提到过),并且寒假的时候在家里也预习了一部分java知识.第一周要求学习两个章节并作心得体会,虽然我早已看过前两章的知识,不过为了进一步巩固,我还是用了星期六一天的时间把第一章和第二章的知识从头到尾仔仔细细的看了