2021-11-07

向下转型

​ 强制类型转换

子类引用指向父类对象,此处必须进行强转,可以调用子类特有的方法

父类中的静态方法无法被子类重写,所以向上转型之后,只能调用到父类原有的静态方法

instanceof运算符

判断对象是否是类的实例

返回值是布尔值

抽象类

abstract

抽象方法

定义时不允许包含方法体,子类中需要重写父类的抽象方法,否则子类也必为抽象类

抽象类不能直接实例化,只能被继承,可以通过向上转型完成对象实例

abstract定义抽象方法,不需要具体实现

包含抽象方法的类是抽象类,

抽象类中可以没有抽象方法

接口

  • 接口定义了某一批类所需要遵守的规范

  • 接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只规定这些类里必须提供某些方法

新建类型:interface

类实现接口: implements +接口名

命名i开头

接口抽象方法可以不写abstract关键字,

访问修饰符默认public

当类实现接口时,需要去实现接口中的所有抽象方法,否则需要将该类设置为抽象类

接口中可以包含常量,默认public static final

default: 默认方法,可以带方法体

​ 可以在实现类中重写,可以同接口名调用

static: 静态方法,可以带方法体

​ 不可以在实现类中重写,可以同接口名调用

可以多个实现多个接口,用 , 隔开

接口,继承,在调用时出现的同名方法问题,同名常量问题

接口的继承

接口也可以实现继承关系,且可以继承多个父接口

同时存在 多个父接口中的同名方法问题

内部类

  • 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类、
  • 包含内部类的类称之为外部类
  • 内部类在外部使用时,无法直接实例化,需要借由外部类信息才能完成实例化
  • 内部类访问修饰符可以任意,访问范围会受到影响
  • 内部类可以直接访问外部类成员方法属性;如果出现同名属性,优先访问内部类中定义的

​ 访问外部类同名属性:外部类.this.成员

  • 外部类访问内部类信息,需要通过内部类实例,无法直接访问
  • 内部类编译后, .class文件命名: 外部类$内部类.class

分类:

  • 成员内部类

​ 普通内部类

  • 静态内部类
  • 方法内部类
  • 匿名内部类

获取内部类对象实例方法

  1. new 外部类.new 内部类
People.Heart myHeart=new People().new Heart();
  1. 外部类对象.new 内部类

     myHeart=lili.new Heart();
    
  2. 外部类对象.获取方法

 myHeart=lili.getHeart();
静态内部类
  1. 静态内部类中,只能直接访问外部类的静态成员,如果需要调用非静态成员,可以通过对象实例访问
  2. 静态内部类对象实例时,可以不依赖于外部类对象
  3. 可以通过外部类.内部类.静态成员的方式,访问内部类中的静态成员
  4. 当内部类属性与外部类属性同名时,默认直接调用内部类中的成员

​ 如果需要访问外部类中的静态属性则可以通过 外部类.属性 的方式

​ 如果需要访问外部类中的非静态属性,则可以通过 new 外部类().属性的方式

方法内部类

定义在外部方法中的内部类

局部内部类

  1. 定义在方法内部,作用范围也在方法内
  2. 和方法内部成员使用规则一样,class前面不可以添加public 、private、protected、static
  3. 类中不能包含静态成员
  4. 类中可以包含 final、abstract的成员
匿名内部类

没有名字,隐藏名字

适用场景

  • 只用到类的一个实例

  • 类在定义后马上用到

  • 给类命名不会影响到逻辑的场景

  • 匿名内部类没有类型名称、实例对象名称

  • 编译后的文件命名: 外部类$数字.class

  • 无法使用p、p、p、a、s修饰

  • 无法编写构造方法,可以添加构造代码块

  • 不能出现静态成员

  • 匿名内部类可以实习那接口,也可以继承父类,但是不可兼得

异常

异常本质上是程序的错误

编译期间 运行期间的错误

异常分类:

Throwable -Error 程序无法处理的错误,表示运行应用程序中较严重问题 (虚拟机错误、 内存溢出、线程死锁)

​ -Exception 程序本身可以处理的异常。异常处理通常指处理这种类型异常的处理(检查异常、非检查异常)

非检查:编译器认为不需要处理的异常

​ RuntineException

                                                                                                             - ​                                                                                     空指针异常
                                                                                                             - ​                                                                                     数组下标越界异常
                                                                                                             - ​                                                                                      算数异常
                                                                                                             - ​                                                                                      类型转换异常

检查:编译器要求必须处置的异常

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xR3K4WPY-1637226285663)(C:\Users\YANRONG.LEE\AppData\Roaming\Typora\typora-user-images\image-20211108231046914.png)]

异常处理:

在Java应用程序中,异常处理机制为:

   - **抛出异常**
   - **捕捉异常**

4-1开始写笔记

到StringBuilder

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值