首页 > 编程语言 >Day7 Javase抽象接口以及异常的捕获和抛出

Day7 Javase抽象接口以及异常的捕获和抛出

时间:2022-09-21 21:13:05浏览次数:54  
标签:异常 Day7 捕获 接口 抽象 抛出 Javase 方法

Day7

面向对象编程

抽象

abstract修饰抽象类,如果修饰方法就是抽象方法。

抽象方法可以写方法体,然后让继承抽象类的类去重写抽象方法。

java的类是单继承的,但是接口可以实现多继承。

抽象类不能new,只能靠子类去实现他

抽象类也有构造方法。

接口

接口就是只有规范的即抽象方法,里面不能有实现的方法。

interface 定义的关键字

接口的本质是契约,制定好后都要遵守

接口里面的所有定义都是抽象的,public可以不用写。接口定义的属性都是常量。

类可以实现接口通过implement来,而且可以实现很多接口。侧边实现了多继承。

N种内部类

内部类就是在一个类的内部再定义一个类,通过外部类来实例化内部类

内部类能获得外部类的私有属性可以直接调用。

而静态内部类就是定义的时候加static后,就不能调用外部类私有的属性,因为是先加载的是内部类,而外部类还不存在。

一个java类中可以有多个class类但是只能有一个public class类。

class甚至可以在方法里设置为内部类 局部内部类

不用将实例保存在变量中,不需要名字可以直接用

new Student().getname();

异常分析

异常抛出也是了解较少的一部分,需要重新学习。

error和exception

异常就是可能会出问题,也可能没什么问题,处于不确定的状态。

就是在程序运行过程中所遇到的一些意外,就叫异常。

异常处理框架

java.lang.Throwable是所有异常的超类

在java Api里定义了许多异常类,分两大类。错误error和异常exception

图片

异常的抛出和捕获

异常处理的五个关键字

try catch finally throw throws

int a=1;
int b=0;
try {//监控区域
    System.out.println(a/b);
}catch (ArithmeticException e){//程序异常后执行下面代码块
    System.out.println("程序异常,b不能为0");
}finally {//用来处理善后工作
    System.out.println("finally");
}

finally可以不需要,但是是后面处理IO,资源的关闭操作。

可以捕获多个异常,就是可以多谢catch,但是范围要从小到大来写。

生产异常处理的快捷键 ctrl+alt+T

throw抛出异常 主动抛出异常一般在方法里使用。

throw new RuntimeException(e);

throws 则是主动在方法上抛出

public void test(int a,int b) throws RuntimeException{

}

而调用这个后,需要在使用前捕获这个异常。

自定义异常

用户自定义异常,只需要继承exception类

在程序中使用自定义异常,大体分为以下几个步骤

  1. 创建自定义异常类
  2. 在方法中使用throw关键字抛出异常
  3. 如果在当前抛出异常的方法中处理异常,可以使用try.......catch语句捕获并处理,否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,进行下一步操作。
  4. 在出现异常方法的调用者中捕获并处理异常。

异常的打印信息 toString

最后尽量添加finally去处理资源的关闭,释放占用的内存。

思考

至此,javase算是学完,后面学反射和注解,线程,再接触框架。

今天学习面向对象的后面操作,抽象和接口,挺重要的,在做项目时。后端的实体定义均需要用到接口,这也体现了java面向对象的特性。

然后就是异常,很多可能出意外的代码都需要捕获和抛去以确保程序的稳定,而且也可以通过异常能很清楚的了解到是那部分的代码出问题,测试时很重要,当初用C++写时对这些关注很少,也只能算是入门。

标签:异常,Day7,捕获,接口,抽象,抛出,Javase,方法
From: https://www.cnblogs.com/guoyifan/p/16717139.html

相关文章

  • Loadrunner获取登陆接口中的token值
    登录后,服务器会生成token并返回给客户端,之后客户端与服务器交互的操作中,服务器程序会对比这个token,正确则允许操作,否则拒绝客户端请求。在性能测试时,好多场景需要登录后才......
  • 记一次分析接口
    在偶然中发现一个接口耗时有点慢,用了4秒钟然后查询了下,这个接口做的事有点多,即有接口调用,又有很多的查询然后保存,所以单看代码或者时序图的话很难看出然后用了Arthas的......
  • 走进Java接口测试之测试框架TestNG数据驱动(入门篇)
     https://mp.weixin.qq.com/s?__biz=MzIwNDY3MDg1OA==&mid=2247485789&idx=1&sn=fb6c0abd38419747e61d9b14dee10466&chksm=973ddbb8a04a52aeee5869d47b1d0ea01467f2c3bdb9......
  • LoadRunner进行接口自动化测试
    我们以测试豆瓣api获取图书信息的接口为例接口的信息如下:接口ip:https://api.douban.com/v2/book/:id接口返回值:status=200返回数据:{…(图书信......
  • 走进Java接口测试之简单快速的Mock Server Moco
    https://cloud.tencent.com/developer/article/1465591引言在上文走进Java接口测试之Mock(概念篇)中,我们介绍Mock的基本概念,本文我们将详细介绍其中一个快速简单MockSer......
  • 一、Jenkins+jmeter+ant接口自动化测试(Jenkins传参给Jmeter)
    1,在build.xml文件中定义需要Jenkins传给Jmeter的参数<propertyname="script_name"value="*.jmx"></property>#需要压测的脚本<propertyname="thread_num"value="1......
  • Jenkins+jmeter+ant接口自动化测试
    Jenkins安装:https://www.cnblogs.com/chenchengzi/p/15823805.htmlJmeter安装:https://www.cnblogs.com/chenchengzi/p/15823808.htmlant安装:1下载安装[下载地址]......
  • 在vue中获取mock中接口文件的某个接口方法 (vue-element-admin)
    一、通过require.context来获取api/course文件夹里面的文件require.context(`@/api/course`,true,/\.js$/)得到如下:二、把以上内容处理,放入一个对象M中letM=......
  • Pytest+allure+requests接口自动化
    实现功能测试数据隔离:测试前后进行数据库备份/还原接口直接的数据依赖:需要B接口使用A接口响应中的某个字段作为参数对接数据库:讲数据库的查询结果可直接用于断言......
  • 探索Java8:(五)Supplier和Consumer接口的使用
    Supplier是函数式编程的另一个接口,与Function、Predicate接口类似,区别在于Supplier不接收任何参数,只返回结果。Supplier的基本使用@FunctionalInterfacepublicinterfac......