前言
本章主要是对异常以及接口基础知识的讲解,喜欢的朋友请点个赞支持一下,谢谢各位大佬。
一、接口
1、Java接口的定义
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。 接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。 除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。 接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
2、接口定义格式
[public] interface interface_name [extends interface1_name[, interface2_name,…]] { 定义常量 声明方法 }
代码如下(示例):
public interface inte {
public static int a=10;
public void run();
}
3、接口的特性
1、接口不能实例化 不能new 2、接口中所有的方法默认都是public abstract的 3、接口中所有的属性都是public static final的 4、一个类实现接口,必须重写所有方法,除非这个类是抽象类
4、接口和类的区别
1、接口不能用于实例化对象、不能new,但是类可以实例化 2、接口没有构造方法,类存在构造方法 3、接口中所有的方法必须是抽象方法,Java 8 之后 接口中可以使用 default 关键字修饰的非抽象方法。 4、接口的属性都是public static final的,不能包含成员变量。 5、接口是实现(implements),类似继承(extends)。 6、接口支持多继承。
5、抽象类和接口的区别
1、抽象类中的方法可以有方法体,但是接口中的方法没有方法体。 2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的(就是常量)。 3、 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。 4、抽象类是一个类只能继承一个抽象类,但是一个类却可以实现多个接口。
二、异常 Exception
1、什么是异常
异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序 异常是一种特殊的对象,类型为java.lang.Exception或其子类 Throwable 类的层次
2、三种类型的异常
1、检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。(调用都必须处理:Exception, ClassNotFoundException, SQLException , IOException…) 2、运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。(可处理也可不处理:ArithmeticException, InputMismatchException ,Nullpoint ,ArrayIndexOut…) 3、错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
3、Java的异常处理的5个关键字
1、try:{ 尝试运行的代码} 2、catch:catch(异常类型 对象) {} 捕获对应的异常;catch可以多次捕获 多重catch 一般按出现异常的顺序捕获 必须是先子类后父类 3、 finally:finally{} 无论如何都执行的代码 ;不执行的唯一情况 System.exit(int) 4、throw:throw是语句抛出一个异常。语法:throw (异常对象); 5、throws:声明方法可能要抛出的各种异常.语法: public run() throw 异常类型{}; 1、try catch finally :三者都不能单独出现 ,最少出现2个,且必须有一个是try 2、如果有return 和finally 一起用,一定是先finally执行完后再return
public class test {
public static void main(String args[]) {
try {
int a = 1 / 0;
} catch (Exception e) {
System.out.println("Exception thrown :" + e);
} finally {
System.out.println("我会运行");
}
}
}
使用throws声明在该方法中可能产生的异常,但是在调用时需要使用 catch 语句捕获产生的异常
public class test {
public static int run() throws NullPointerException{
int a = 1/0;
return a;
}
public static void main(String args[]) {
try {
int b=run();
}catch (Exception e){
System.out.println(e);
}
}
}
4、创建异常
自定义异常类一般包含两个构造方法:一个是无参的默认构造方法,另一个构造方法以字符串的形式接收一个定制的异常消息,并将该消息传递给超类的构造方法。
public class TestException {
public static void main(String agrs[]){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入年龄");
try {
int age=scanner.nextInt();
if (age>200){
throw new MyFirstException("您活的太久了");
}else if(age<0){
throw new MyFirstException("您还未出生");
}else{
System.out.print("您的年龄为"+age);
}
}catch (MyFirstException e2){
System.out.print(e2);
} catch (Exception e) {
System.out.print("请输入正确的年龄");
}
}
}
四、总结
刚开始写,如果有什么不足的地方希望各位可以指点一下,如果可以希望大佬们可以帮忙点个赞,求赞…
|