教材学习内容
1.内部类的外嵌类的成员变量在内部类中任然有效,内部类中的成员方法也可以调用外嵌类的方法。内部类的类体中不可以声明类变量和类方法(类变量、类方法,这个是先于对象存在的,在java类被加载到运行环境中的时候,就存在的了,用static关键字修饰的。可以用‘类名.类方法’‘‘类名.类变量’的语法来调用。)
class Demo{
int x; //x是实例变量,也是成员变量
static int y; //y为类变量,也是成员变量
public int x() { //该方法为实例方法,是成员方法
return x;
}
public static void setX(int x1){ //该方法为类方法,也是成员方法
x = x1;
}
}
内部类对应的字节码文件的名字格式是”外嵌类名$内部类名”
2. 匿名类是不能有名字的类,它们不能被引用,只能在创建时用New语句来声明它们。匿名类的声明是在编译时进行的,实例化在运行时进行,这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。
①继承一个类,重写其方法
②实现一个接口,可以是多个
3.各个catch参数中的异常类都是Exception的某个子类,表表明try部分可能发生的异常,这些子类之间不能有父子关系,否则保留一个含有父类参数的catch即可
Throw可以在方法中声明具体的异常操作,用相应的异常类创建对象,并使用throw抛出该异常对象。
4.断言使用在代码调试阶段,用于程序不准备通过捕获异常来处理的错误
使用assert关键词来声明断奶眼语句
5. java的异常可以出现在方法调试中,即在方法调用过程中抛出异常对象,导致程序运行出现异常,并且等待处理。java 使用Try-catch语句来处理异常,将可能出现的异常操作放在try部分,当try的某个方法发生一场之后,try部分将立即结束执行,转向相应的catch语句部分。
教材学习中的问题和解决过程
1.断言在c语言中也有使用,其使用方法经查询如下:
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行
#include <assert.h>
void assert( int expression );
2.在使用断言语句中,多次无法运行,后来发现是没有使用boolean型的表达式
代码实现
package Try_Catch;
public class Application {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 0,m =0,t=100;
try {
m = Integer.parseInt("8888");
n = Integer.parseInt("ab89");//发生异常,转向catch
t = 7777;//t 没有机会赋值
} catch (Exception 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("我是故意的");//故意抛出异常
} catch (Exception e) {
System.out.println("发生异常:" + e.getMessage() );
}
}
}