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的编程规范

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,848评论 0 10
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,709评论 0 11
  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 1,559评论 0 6
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,272评论 0 2
  • 前几天朋友圈里有篇文章,说是一个女人坚持和她老公离婚,原因是她老公不听劝说一直往她的花盆里弹烟灰丢烟头,不管父母亲...
    豆宝妈妈阅读 412评论 0 0