第五周 学习总结

一、教材学习笔记

ch7

1、内部类&匿名类

  • 内部类是定义在一个类中的另外一个类;
  • 内部类可以被修饰为static内部类;
  • 和子类有关的匿名类
    new 类名() {
    匿名类的类体
    };
  • 和接口有关的匿名类
    new 接口名(){
    实现接口的匿名类的类体
    };

    2、异常类

  • 处理方式有两种:

    使用try..catch..finally进行捕获;

  • 在产生异常的方法声明后面写上throws 某一个Exception类型,如throws Exception,将异常抛出到外面一层去。
  • 断言进行调试

3、断言

  • 程序正式运行时,断言语句自动关闭,可以使用java -ea 文件名;
  • 程序调试阶段,断言语句发挥正常作用;
  • 断言语句的两种格式 assert bolleanException; assert blooeanException:messageException;
ch10

1、字节处理

  • 两个最基本字节流的抽象父类InputStream、OutputStream,一般用他的继承类。
  • FileInputStream:构造:FileInputStream(File file)、FileInputStream(StringfileName),主要方法:`int read(int d)、int read(byte[] buf) 。
  • FileOutputStream:构造:FileOutputStream(File file)、FileOutputStream(StringfileName)

2、缓冲流:BufferedReader和BufferedWriter类创建的对象为缓冲输入流、输出流,二者增强读写文件的能力。

3、数组流:字节数组流、字符数组流

4、对象流:ObjectInputStream、ObjeatOutputStream类创建的对象称为对象输入流和对象输出流;

二、码云链接

码云链接

三、脚本运行截图


附:遇到的问题及部分解决方法

1、异常类:关于Unreachable Statement

//教材P167
public class Example7_4 {
    public static void main(String args[ ]) {
        int n = 0,m = 0,t = 1000;
        try{  m = Integer.parseInt("8888");
            n = Integer.parseInt("ab89"); //发生异常,转向catch
            t = 7777;  //t没有机会被赋值
            //***************
            System.out.println("a");//这里是我自己添加的
            //***************
        }
        catch(NumberFormatException e) {
            System.out.println("发生异常:"+e.getMessage());
        }
        System.out.println("n="+n+",m="+m+",t="+t);
        try{  System.out.println("故意抛出I/O异常!");
            throw new java.io.IOException("我是故意的");
            //System.out.println("这个输出语句肯定没有机会执行,所以必须注释掉,否则编译出错");
        }
        catch(java.io.IOException e) {
            System.out.println("发生异常:"+e.getMessage());
        }
    }
}

上面的程序中//System.out.println("这个输出语句肯定没有机会执行,所以必须注释掉,否则编译出错");这句话不太理解,为什么没机会执行就要注释掉?上面的t = 7777;不是也没有机会执行吗?

后来我发现在throw语句的后面不能写任何其他的语句,如果写了错误提示:Unreachable Statement。前面的语句中发生了异常,但是因为没有写throw,所以就不存在没有机会执行的问题。

2、怎么在IDEA里面开启断言?

RUN -> Edit Configurations -> Configuration -> VM options : 输入-ea,点击OK。

教材P170页代码及运行结果(带-ea):

import java.util.Scanner;
public class Main {
  public static void main (String args[ ]) {
       int [] score={-120,98,89,120,99};
       int sum=0;
       for(int number:score) {
          assert number>0:"负数不能是成绩";
          sum=sum+number;
       }
       System.out.println("总成绩:"+sum);
   }
}
Exception in thread "main" java.lang.AssertionError: 负数不能是成绩
    at Main.main(Main.java:7)

Process finished with exit code 1

3、for循环的另外一种用法

上面的例子里:

    for(int number:score) {
        assert number>0:"负数不能是成绩";
        sum=sum+number;
    } 

以前注意到了for的这种用法,当时只瞟了一眼,以为以后用不到也见得少,但是这会儿又想不起来了,惭愧。

找到一篇总结的不错的:Java for循环的几种用法 真 · 活到老学到老。

总结一下,在这里大概就是:

> for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体

在这里就是把数组score的每一个值赋给一个int型叫number的变量,让他在循环体里面做运算。

4、程序退出代码

System.exit(0);

之前考试的时候用过,我拿C语言的exit(0);程序报错,我当时还不知道怎么回事,在这记个笔记。

原文地址:https://www.cnblogs.com/maxeysblog/p/8678310.html

时间: 2024-10-13 07:56:03

第五周 学习总结的相关文章

201405644 嵌入式程序设计第五周学习总结

嵌入式课程设计第五周学习总结 标准 I/O 编程 标准 I/O 提供流缓冲的目的是尽可能减少使用 read()和 write()等系统调用的数量.标准 I/O 提供了 3 种类型 的缓冲存储.全缓冲.行缓冲.不带缓冲. 打开文件 打开文件有三个标准函数,分别为:fopen().fdopen()和 freopen().其中 fopen()可以指定打开文件的路径和模式,fdopen()可以指定打开的文件描述符和模式,而 freopen() 除可指定打开的文件.模式外,还可指定特定的 I/O 流. f

2014025689 《嵌入式系统程序设计》第五周学习总结

<嵌入式系统程序设计>第五周学习总结 一.6.5(标准I/O编程)主要涉及的函数及知识点 标准的I/O的三种缓冲存储:全缓冲.行缓冲.不带缓冲. 1. 全缓存:当填满标准I/O缓存后才进行实际的I/O操作 2. 行缓存:当输入或输出中遇到行结束符时,标准I/O库执行I/O操作 3. 不带缓存:标准I/O库不对字符进行缓冲 打开文件的三个标准函数:  fopen().fdopen()和 freopen(). -fopen()可以指定打开文件的路径和模式 函数原型:FILE * fopen(con

20145307《信息安全系统设计基础》第五周学习总结PT2

20145307<信息安全系统设计基础>第五周学习总结PT2: 教材学习内容总结 之前有第一部分学习总结: http://www.cnblogs.com/Jclemo/p/5962219.html 以下为第二部分 执行汇编命令:gcc –s xxx.c –o xxx.s反汇编命令:objdump –d xxx 64位处理器得到32代码的命令:gcc –m32 –s xxx.c Ltme: 1.三种操作数: 立即数:常数值.表示为$c标准表示的整数. 寄存器:表示某个寄存器的内容. 存储器:根据

信息安全设计基础第五周学习总结

信息安全系统设计基础第五周学习总结 [学习时间:10小时] [学习内容:第三章:程序的机器表示] 一.教材内容 1.X86 寻址方式的变化: 1 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全: 2 8086的分段模式: 3 IA32的带保护模式的平坦模式 2.机器编程的两种抽象: 1)指令集体系结构(Instruction set architecture,ISA)——定义指令格式以及每条指令执行之后对状态的影响.大多数ISA将程序行为描述成按顺序执行的: 2)虚拟地址 3.一些处理

20145317《信息安全系统设计基础》第五周学习总结2

20145317<信息安全系统设计基础>第五周学习总结2 教材学习内容总结 X86 寻址方式经历三代: DOS时代的平坦模式,不区分用户空间和内核空间,很不安全. 8060的分段模式 IA32的带保护模式的平坦模式 程序编程 1.代码含义 gcc -01 -o p p1.c -01 表示使用第一级优化.优化的级别与编译时间和最终产生代码的形式都有关系,一般认为第二级优化-02 是较好的选择. -o 表示将p1.c编译后的可执行文件命名为p 2.机器级编程的两种抽象 指令集结构ISA 是机器级程

第五周学习进度总结

第五周学习进度总结   学习时间 新增代码行 博客量(篇) 知识总结 第五周 15h 125 2 新使用了结对编程方式,效率更高.又近一步加深了对C#语言的学习.

20145301第五周学习总结

20145301第五周学习总结 教材学习内容总结 第八章 8.1 语法与继承构架 什么是异常?在 Java 编程语言中,异常类定义程序中可能遇到的轻微的错误条件.可以写代码来处理异常并继续程序执行,而不是让程序中断. Java 提供了一种异常处理模型,它使您能检查异常并进行相应的处理.它实现的是异常处理的抓抛模型.使用此模型,您只需要注意有必要加以处理的异常情况.Java 提供的这种异常处理模型,代替了用返回值或参数机制从方法返回异常码的手段. 在 Java 中,所有的异常都有一个共同的祖先 T

Java第五周学习总结

20145307 <Java程序设计>第五周学习总结 教材学习内容总结 C8 使用try.catch打包System.in.read(),声明throws java.io.IOException. ·如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执行. ·catch括号中列出的异常不得有继承关系,否则会发生编译错误. ·在catch区块进行完部分错误处理之后,可以使用throw将异常再抛出. ·操作对象异常无法使用try.catch处理时,可由方法的客户端一句当

201671010117 2016-2017-2 《Java程序设计》Java第五周学习心得

Java第五周学习心得       通过这一周的学习,对继承有了一定的了解,但是不是很熟悉,老师上课按以前的方法讲解了第五节的懂得了更深入了一点,还需要多多敲代码来掌握的更深,因为方法突然的改变,还是有一点的不习惯,所以现在还在适应中,感觉部分知识掌握的不是很深入,还需要加强.

20145319 第五周学习总结

20145319 <Java程序设计>第五周学习总结 教材学习内容总结 本周学习了教材的第八章.第九章,在经过前几周的学习之后,我们大致了解了java中的基础语法,函数构造调用,以及当以项目为基础设计代码时我们该如何使用继承和接口,对java已有初步了解,因此这两章我们要进一步学习的是如何处理程序中的异常状况. 1. 异常处理语法 定义:java中所有错误都会被打包成一个对象,所以可以尝试(try)捕捉(catch)错误对象,并做出相应处理. try:多和catch搭配使用,JVM会尝试try