Java无难事04

1、内部类:
在一个类中定义另外一个类,这个类就叫做内部类或内置类;
内部类可以让我们将逻辑上相关的一组类组织起来,并由外部类来控制内部类的可见性;
当我们建立一个inner class时,其对象就拥有了与外部类对象之间的一种关系,这是通过一个特殊的this reference(引用)形成的,使得内部类对象可以随意的访问外部类中所有的成员;
在这里插入图片描述
在方法中定义的内部类,如果要访问方法中定义的本地变量或方法的形参,则变量必须被声明为final;
内部类可以声明为private(不能被外部访问)或protected;还可以声明为abstract或final;
内部类可以声明为static的,但此时就不能再使用外部类的非static的成员变量和非static的成员方法;(调用外部类static的成员变量时,用Outer.index)
非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才·可声明static成员。

2、我们为什么使用内部类?
在内部类中,可以随意的访问外部类的成员,这可以让我们更好的组织管理我们的代码,增强代码的可读性;
内部类可以用于创建适配器类,适配器类是用于实现接口的类。使用内部类来实现接口,可以更好的定位与接口关联的方法在代码中的位置;
可以利用一个内部类去实现一个接口来隐藏接口细节;(将内部类定义为private)
在这里插入图片描述
当有一个类既要从一个类中派生出来,又要实现一个接口,在接口中所定义的方法和父类中所定义的方法同名,但是所表示的意义不同时,可以用一个内部类来实现这个接口,解决这个问题。
在这里插入图片描述
当一个抽象类不能直接实例化时,可以用匿名内部类去实现抽象方法从而实例化;
在这里插入图片描述

3、异常处理:
打开一个不存在的文件、网络连接中断、数组下标越界、正在加载的类文件丢失等会引发异常;
Java中的异常类定义了程序中遇到的轻微的错误条件;
Java中的错误类定义了程序中不能恢复的严重错误条件。如内存溢出、类文件格式错误等。这一类错误由java运行系统处理,不需要我们去处理。
java程序在执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给java运行时系统,这个过程称为抛出(throw)异常;
当java运行时系统(JVM)收到异常对象时,会寻找能处理这一异常的代码并把当前的异常对象交给其处理,这一过程称为捕获(catch)异常;
如果java运行时系统找不到可以捕获异常的方法,则运行时系统将停止,相应的java程序也将退出;
try(放可能引发异常的代码)/catch(对所引发的异常条件进行处理)/finally(不管程序执行有没有发生异常,finally里面的语句始终要执行)语句
在这里插入图片描述
在这里插入图片描述
对于RuntimeException(通常代表程序编写错误 Bug),通常不需要我们去捕获,这类异常由java运行系统自动抛出并自动处理;
在这里插入图片描述
注: NullPointerException - 空指针引用异常
ArithmeticException - 算术运算异常
IndexOutOfBoundsException - 下标越界异常
如果父类中的方法抛出多个异常,则子类中的覆盖方法要么抛出相同的异常<=,要么抛出异常的子类,但不能抛出新的异常(注:构造方法除外);
我们在方法声明时,声明一个不会抛出的异常,java编译器就会强迫方法的使用者对异常进行处理。这种方式通常应用于abstract base class(抽象基类)和interface。

4、Java的编程规范
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值