CGB2111开班第九天

CGB2111开班第九天,第1张

CGB2111开班第九天 抽象类

定义抽象类的关键字是:abstract 。

abstract可以修饰类也可以修饰方法

abstract修饰类,那么类就会变为抽象类。

public abstract class AbstractClass{  // 抽象类的定义

}

abstract修饰方法,那么方法就会变为抽象方法。

public abstract class AbstractClass{
    
    public abstract void print();   // 抽象方法的定义
}

【注意事项】:

1、被abstract修饰的方法是抽象方法,抽象方法没有方法体。
2、一旦一个普通类中包含了抽象方法,那么这个普通的类必须设置成抽象类。
3、如果子类继承了抽象父类,有两种解决方案:
                1)抽象子类,躺平,实现一部分/不实现父类中的抽象方法。
                2)普通子类,还债,实现父类中所有的抽象方法。
4、抽象方法不能被实例化。
5、抽象类是有构造方法的,只不过不是为了自己使用,而是为了子类创建对象时使用。
6、抽象方法中可以定义成员变量、成员常量。
7、抽象类中的方法可以全部是普通方法/全不是抽象方法/普通方法和抽象方法共同存在抽象类中。
8、如果一个类不想被实例化。那么这个类可以被声明抽象类。
9、abstract不能和private、static、final共用。因为abstract抽象类中的抽象方法是必须要被继承后重写才能使用的,而private、static、final关键字都是使得子类不能够重写方法的关键字。

异常 

异常是由于我们的语法逻辑错误而导致了jvm无法为我们处理程序的逻辑错误,被迫终止程序的运行。为了提高代码的健壮性,我们需要去处理异常。

处理异常的方式有两种:捕获异常并解决和向上抛出。

捕获异常并解决的方式

普通捕获异常:try-catch语句

语法格式:try{

                        可能产生异常的代码块;

                } catch(异常的类型){

                        异常的解决方案;

                }

public class TryCatch {
	
	public static void main(String[] args) {
		
		add();
	}
	
	public static void add() {
		
		Scanner sc = new Scanner(System.in);
		
		try {    // 捕获异常
			
			System.out.println("请输入第一个整形数字:");
			
			int oneNum = sc.nextInt();
			
			System.out.println("请输入第二个整型数字:");
			
			int twonum = sc.nextInt();
			
			System.out.println(oneNum + " / " + twonum + " = " + (oneNum / twoNum));
		
         
		} catch (ArithmeticException e) {    // 处理异常

			System.out.println("除数不能为零");

         
			
		} catch (InputMismatchException e) {
			
			System.out.println("请输入整数");

		} catch (Exception e){
            
            System.out.println("产生了未知错误");
        }
		
	}
}

【注意事项】

  •  如果产生了异常而没有catch语句块的解决方案与之对应,则会终止程序的运行,控制台会打印异常的信息。
  • 一个try语句可以搭配多个catch语句。
  • 一旦检测到代码产生了异常,尽管产生异常的代码下面还有其它正常的代码,下面那些正常的代码也不会运行,而是会直接去使用产生异常的类型去匹配catch语句中您所预料到的异常类型,匹配上了则会执行解决方案,没有匹配上则会终止代码的运行,控制台打印异常信息。
  • 不推荐在catch语句中的第一行代码使用return语句,return语句会直接结束该程序的执行。
  • 推荐使用Exception异常兜底,Exception异常必须写在最后,因为写在前面,其它的异常都不会被执行。异常也有子类关系,前面的异常必须是后面异常的子类或同级类。一旦前面的catch语句中的异常类型都没匹配上,那么会执行Exception异常中的解决方案。

向上抛出异常的方式

所谓向上抛出,便是我们已经预先知道某个代码块可能会产生异常,但是我们不解决或者解决不了,那么便可以向上抛出,谁调用这个可能产生异常代码块的方法,那么谁去解决这个异常。

向上抛出的关键字:throws。

public class TryCatch {

	public static void main(String[] args) {

		add();
	}
            
    
	public static void add() throws ArithmeticException, InputMismatchException, Exception {

		Scanner sc = new Scanner(System.in);

		System.out.println("请输入第一个整形数字:");

		int oneNum = sc.nextInt();

		System.out.println("请输入第二个整型数字:");

		int twonum = sc.nextInt();

		System.out.println(oneNum + " / " + twonum + " = " + (oneNum / twoNum));

	}
}

【注意事项】

  •         如果到了main方法调用这个可能产生异常代码块的方法,并且在main方法中没有捕获异常,那么jvm会因为无法处理这个异常而被迫终止程序,并且控制台打印异常信息。
  •         推荐使用Exception异常兜底,Exception异常必须写在最后,因为写在前面,其它的异常都不会被执行。异常也有子类关系,前面的异常必须是后面异常的子类或同级类。一旦前面的catch语句中的异常类型都没匹配上,那么会执行Exception异常中的解决方案。

        

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5687512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存