在一周的学习中,没有学习什么新的知识,只是在原来的基础上学习巩固了一些已经学习过的知识,首先就是对异常的处理进行了复习。
第一个就是 throws关键字。
在方法声明的位置上使用 throws 关键字抛出,谁调用我这个方法,我就抛给谁。抛给 调用者 来处理。
这种处理异常的处理方法或者是态度可以称为:上报。
第二个就是用 try...catch...关键字来处理,这个关键字什么作用呢?
这个关键字就是使得这个异常不会上报,自己把这个事儿处理了。也就是说异常抛出到此为止不在进行上报了,直接自己处理了
。如下图所示,可以将捕捉异常后想要告诉使用的信息在catch语块中输出
除了以上两个,还有一个throw关键字,也是可以对异常进行处理,throws只是声明上报可能出现的异常,实际上并没有抛出异常,而throw则是实际抛出了异常,如下
throw new 异常类名称(构造函数参数);
其中,异常类名称就是已定义的异常类,构造函数参数是为异常类的构造函数提供的参数。它可以为代码中的某个条件设置一个异常,并在需要的位置进行捕获和处理。
下面是一个简单的示例,演示当传入的参数小于 0 时,抛出 IllegalArgumentException 异常对象。
public static int divide(int numerator, int denominator) {
if (denominator <= 0) {
throw new IllegalArgumentException("除数必须大于 0");
}
return numerator / denominator;
}
这是这一周对异常的复习,除此之外还复习了静态方法与非静态方法的区别。
静态方法的生命周期跟相应的类一样长,静态方法和静态变量会随着类的定义而被分配和装载入内存中。一直到线程结束,静态方法和静态属性才会被销毁。(也就是静态方法属于类)
非静态方法的生命周期和类的实例化对象一样长,只有当类实例化了一个对象,非静态方法才会被创建,而当这个对象被销毁时,非静态方法也马上被销毁。(也就是非静态方法属于对象)
总结:类方法可以直接通过类名调用;实例方法必需先实例化类,再初始化对象,然后通过类的实例对象才能调用。
下面举个例子
public static void method1(){
System.out.println("123");
}
public void method2(){
System.out.println("456");
}
public static void main(String[] str){
ABC.testStatic(); 直接通过类名调用
ABC a = new ABC(); 创建一个新的对象
a.testMethod(); 通过对象名来调用
}
这样一看静态方法和静态方法就明了起来了。
以上就是我一周中主要学习复习的知识,我还进行了C语言大作业五子棋小游戏的编写。