OOP面向对象3

instanceof 类型转换

instanceof这个在之前就已经说过了,这里只提供一份代码,仅供参考

在这里插入图片描述

要想使编译不报错,就要满足比较的类型和该类型有关系(继承),以上为例

  • String类型和Object类型是继承关系,所以编译不报错,但是实例化的对象不属于String,所以结果为FALSE

至于类型转换上一节就提到过什么时候需要类型转换

  • 和基本类型的转换差不多

在这里插入图片描述

static

对于static关键字应该不陌生,这里就写一下有关的用法还有表达
在这里插入图片描述

这个是属性及一些方法的定义及使用,静态的是随着类加载而加载,所以在静态方法里是无法直接调用非静态方法的,需要先实例化出来才行,但是非静态放方法是可以直接调用静态方法,原理还是这个加载顺序

在这里插入图片描述

代码块一般都是用来进行初始化的,而且静态代码块只执行一次,其他的可以多次执行

来一个有趣的
在这里插入图片描述

包也可以静态,对里面的方法或者属性,这个random方法一般是要通过类名加方法名调用的,但是如果使用的多,直接在包这里加一个static关键字来直接使用这个方法

抽象类

抽象类是一个简单的概念

使用abstract修饰符来修饰

在这里插入图片描述

继承的抽象类中的抽象方法必须被重写

  • 抽象类中可以有非抽象方法,但是抽象方法必须在抽象类中
  • 抽象类是不能被new的,不能被实例化

接口

接口的定义其实和抽象类差不多,但是又差得很多

接口使用interface来进行定义接口,接口是一个单独的名称,不是类,接口可以多继承,使用implements关键字,还是来个代码展示吧

在这里插入图片描述

这里只继承了一个,可以继承多个接口,继承接口的实现类必须重写接口里的方法

  • 由于接口会默认添加修饰符,所以可以直接写为void add();
  • 接口不能有自己的实例方法,只能为抽象方法

内部类

内部类就是在类里面的类,可分为

  • 成员内部类
  • 静态内部类
  • 局部内部类
  • 匿名内部类

成员内部类

一般的内部类就是这么用的

在这里插入图片描述

  • 内部类可以调用外部类的属性和方法

静态内部类

这个内部类就是多加了一个static关键字,表示静态,这个关键字之前就讲过,而且加载时间是很早的,所以在使用静态内部类时就调用不了外部类的普通属性,因为加载时间不同,这个就不写了,和成员内部类一样,只是在public后面加上静态修饰符就行了

局部内部类

在这里插入图片描述

局部内部类的定义也很简单,就是定义在方法里

使用也很简单,和一般的类没什么区别

在这里插入图片描述

匿名内部类

顾名思义,就是没有名字的内部类

在这里插入图片描述

不用将对象存储在变量中,直接使用该对象

异常

异常这里不作过多的解释,讲两个点(错误就不讲了,错误只要知道很严重就行了,一般也不要去犯错,一般也不会犯错,主要还是了解异常)

  • 捕获处理异常
  • 自定义异常

捕获处理异常

在这里插入图片描述

使用try catch进行捕获处理,finally表示无论有无异常都会进行的语句块,try表示可能会有异常的的语句块,catch表示有异常要处理的语句块

可以不用捕获异常,可以使用throws抛出异常,throw是在方法内抛出,throws是方法的抛出

自定义异常

就一点,继承exception类就行了,然后通过构造方法来定义一些异常条件

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不敢懈怠伪装起来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值