java抽象类异常_java基础-static/抽象类/接口/错误和异常/捕获和抛出错误

static关键字详解

静态的变量

public class Main {

private static int age=18;

private double score=100;

public void run()

{

System.out.println("run");

}

public static void go()

{

System.out.println("go");

}

public static void main(String[] args) {

System.out.println(age);

go();

/*

定义为static的,可以直接使用

System.out.println(score);

run();

*/

}

}

静态代码块

public class Main {

{

System.out.println("匿名代码块");

}

static

{

System.out.println("静态代码块");

}

public Main()

{

System.out.println("构造方法");

}

public static void main(String[] args) {

new Main();

}

}

/*输出顺序

静态代码块

匿名代码块

构造方法

*/

静态导入包

final定义的类,不能被继承

抽象类

abstract抽象类

public abstract class Main {

public abstract void DoSomething();

public abstract void Go();

}

抽象类定义的东西,只写名字。

不能new,必须由继承它的类来实现。

java的类是单继承,接口是多继承的。

抽象方法只能放在抽象类里,且抽象类可以写入普通方法。

接口

interface

public interface Main {

//接口里定义的都是常量,public static final

int age=10;

//接口里定义的方法都是抽象的,public abstract

void DoIt();

int ReturnThis(int A);

}

接口必须有个实现类

可以被多继承

class Main3 implements Main,Main2{

@Override

public void DoIt() {

}

@Override

public int ReturnThis(int A) {

return 0;

}

}

内部类

一个类中放入另一个类

匿名内部类

Erroe 和 Exception

检查性异常

运行时异常

错误

异常处理体系

4ad594c926e8704206b4606aa8ec9841.png

Error类对象由java虚拟机生成并抛出,大多数错误与代码编写者无关。

Exception类错误通常由程序员有关。

区别:Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,java虚拟机一般选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。

捕获和抛出异常

五个关键词try,catch,finally,throw,throws

Try, catch,finally

public class demo {

public static void main(String[] args) {

int a=1;

int b=0;

try{

a=a/b;

}catch(Exception e)

{

System.out.println("程序输出异常");

}

finally {

System.out.println("无论如何都执行");

}

}

}

可以有多个catch来捕获多个异常

最严重的写在最后

public class demo {

public static void main(String[] args) {

int a=1;

int b=0;

try{

a=a/b;

}catch (Error e)

{

System.out.println("Error");

}

catch(Exception e)

{

System.out.println("Exception");

}catch (Throwable e)

{

System.out.println("Throwable");

}

finally {

System.out.println("无论如何都执行");

}

}

}

快捷键option+command+T

可以把代码包裹起来

b763669d8be1725341c028df78409b9a.png

打印错误

catch(Exception e)

{

e.printStackTrace();

}

主动地抛出异常throw,一般放在方法中

public class demo {//其实是没有异常的

public static void main(String[] args) {

new demo().a();

}

public void a(){

throw new ArithmeticException();

}

}

bbfc88ee8160135c09a032144ca6fefa.png

方法内无法处理这异常,可以在方法上抛出异常

public class demo {

public static void main(String[] args) {

new demo().a();

}

public void a() throws ArithmeticException{

throw new ArithmeticException();

}

}

Try catch当发生异常时可以进行处理

自定义异常

自己写一个异常类继承exception

71480f97f626eb8c6d3be6914bafa1c1.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值