201711671233《Java程序设计》第7周学习总结
一、教程学习内容总结
这周主要学习了内部类,匿名类,异常类。
(一)内部类
在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类。
内部类与外嵌类的关系:
外嵌类的成员变量在内部类中有效,内部类的方法可以调用外嵌类中的方法。
内部类的类体不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。
内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象。
外嵌类的成员变量在内部类中有效。
内部类可以被修饰为static内部类。static内部类不能操作外嵌类中的实例成员变量。
非内部类不可以是static类。
(二)匿名类
1、和子类有关的匿名类
Java允许直接使用一个类的子类的类体创建一个子类对象。创建子类对象,可以使用父类的构造方法,也可以用类体,此类体被认为是一个子类去掉类声明后的类体,称为匿名类。匿名类是一个子类,不可能有匿名类声明对象,但可以直接用匿名类创建一个对象。
匿名类特点:
匿名类可以继承父类的方法也可以是重写父类的方法。
使用匿名类时,必然是在某个类中直接使用匿名类创建对象,因此匿名类一定是内部类。
匿名类可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以声明static成员变量和static方法。
匿名类是一个子类,但没有类名。在用匿名类创建对象时,直接使用父类的构造方法。
2、和接口有关的匿名类
Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了接口的类去掉类声明后的类体,称作匿名类。
如果某个方法的参数是接口类型,那么可以使用接口名和类体组合创建一个匿名对象传递给方法的参数,类体必须要重写接口中的全部方法。
(三)异常类
异常:程序运行时可能出现的一些错误。
Java使用关键字thow抛出一个异常类Exception子类的实例表示异常发生。
try-catch语句(可以由几个catch组成):
try部分抛出异常对象,或调用某个可能出现抛出异常对象的方法,并且该方法抛出了异常对象,try部分立刻结束执行,转向执行相应的catch部分。程序可以将发生异常后的处理放在catch部分。
各个catch参数中的异常类都是Exception的某个子类,表面try部分可能发生的异常,这些子类之间不能有父子关系,否则保留一个含有父类参数的catch即可。
自定义异常类:
一个方法在声明时可以使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw抛出该异常对象,导致方法结束执行。Catch作用是捕获throw抛出的异常对象。
无论try部分是否发生过异常,finally子语句都会被执行。但需注意:
1.如果try-catch语句中执行了return语句,那么finally子语句仍然会被执行。
2.try-catch语句中执行了程序退出代码,即执行System.exit(0);,则不执行finally子语句。
二、教程学习中的问题和解决过程
一开始没有分清楚关键字throw和关键字throws,然后看着书上的代码,慢慢理解,然后就明白了。
三、学习进度条
| 代码行数 (新增/累计) | 博客量 (新增/累计) | 学习时间 (新增/累计) |
目标 | 2500行 | 10篇 | 200小时 |
第一周 | 30 | 1 | 10 |
第二周 | 30/60 | 1/2 | 10/20 |
第三周 | 30/90 | 1/3 | 10/30 |
第四周 | 30/120 | 1/4 | 10/40 |
第五周 | 30/150 | 1/5 | 10/50 |
第六周 | 30/180 | 1/6 | 10/60 |
第七周 | 50/230 | 1/7 | 10/70 |
四、参考资料
Java2实用教程(第5版)