/本类用于复习异常的解决方案/
public class TestException {
public static void main(String[] args) {
//1.调用方法,求两个整数除法的结果
//method1();//try-catch分别单独处理了两个子类型异常
//method2();//try-catch使用多态,用父类型异常做统一处理
//method3();//throws本方法不处理异常,将异常抛出
/main()不能直接调用method3(),因为实际上被抛出的问题没有被解决,该报错还报错/
f();//用来在main()调用method3()之前,处理掉问题
}
private static void f() {
try{
method3();//调用方法3,即使它抛出异常,我们也在此处处理掉了,不会抛给main()
}catch (Exception e){
System.out.println(“数据不对!”);
}
}
//private static void method3() throws ArithmeticException,InputMismatchException{
private static void method3() throws Exception{
System.out.println(“输入第一个数:”);
int a = new Scanner(System.in).nextInt();
System.out.println(“输入第二个数:”);
int b = new Scanner(System.in).nextInt();
System.out.println(a/b);
}
private static void method2() {
try{
System.out.println(“输入第一个数:”);
int a = new Scanner(System.in).nextInt();
System.out.println(“输入第二个数:”);
int b = new Scanner(System.in).nextInt();
System.out.println(a/b);
//不管是子异常:算术异常还是输入不匹配异常,都可以被Exception匹配到
}catch (Exception e){
//提供的通用的解决方案
System.out.println(“您输入的数据不正确,请重新输入!”);
}
}
//ArithmeticException–除数为0
//InputMismatchException–接收的数据类型不是整形
/解决方案一:/
private static void method1() {
try{
System.out.println(“输入第一个数:”);
int a = new Scanner(System.in).nextInt();
System.out.println(“输入第二个数:”);
int b = new Scanner(System.in).nextInt();
System.out.println(a/b);
//针对于算术异常-子异常 特有的解决方案:
}catch (ArithmeticException e){
System.out.println(“除数不能为0!”);
//针对于与输入不匹配异常-子异常 特有的解决方案
}catch (InputMismatchException e){
System.out.println(“请输入整型的数据:”);
}
}
}
==========================================================================
-
被关键字abstract修饰的类是抽象类
-
一旦一个类中包含了抽象方法,那么这个类必须被声明成一个抽象类
-
抽象类中的方法不做限制,非常自由:全普 / 全抽 / 半普半抽
-
抽象类不可以实例化–创建对象
-
抽象类有构造方法,它自己不用,但是为了子类创建对象时调用
-
如果一个子类继承了抽象父类,那么有两种解决方案:
1)作为一个抽象子类:不实现/实现部分抽象父类的抽象方法,躺平
2)作为一个普通子类:需要实现抽象父类的全部抽象方法,还债
-
被关键字abstract 修饰的方法就是抽象方法
-
抽象方法没有方法体{ },直接以分号结束
package cn.tedu.review;
/本类用于复习抽象类与抽象方法/
public class TestAbstract {
public static void main(String[] args) {
//5.创建子类对象进行测试
CGBTeacher c = new CGBTeacher();
ACTTeacher a = new ACTTeacher();
//报错:抽象类不可以实例化
// Teacher t = new Teacher();
// SCDTeacher s = new SCDTeacher();
c.ready();
c.teach();
a.ready();
a.teach();
//6.1创建多态对象进行测试
//父类引用指向子类对象
//编译(保存)看左边 运行(执行)看右边
Teacher t = new CGBTeacher();
Teacher t2 = new ACTTeacher();
t.ready();
t2.ready();
t.read();//子类并没有重写这个方法,所以执行的是父类的功能
t2.read();//子类并没有重写这个方法,所以执行的是父类的功能
}
}
//1.定义抽象类老师类,并在老师类里提供两个抽象方法
abstract class Teacher{
public abstract void ready();
public abstract void teach();
//6.2定义一个父类的普通方法
public void read(){
System.out.println(“百年树人”);
}
}
//2.定义普通子类1:实现父类中未实现的方法
class CGBTeacher extends Teacher {
@Override
public void ready() {
System.out.println(“正在备课互联网架构与微服务全家桶”);
}
@Override
public void teach() {
System.out.println(“正在讲课互联网架构与微服务全家桶”);
}
}
//3.定义普通子类2:实现父类中未实现的方法
class ACTTeacher extends Teacher{
@Override
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
67402)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!