#一、内部类(Inner class)

1.内部类的分类

  • 成员内部类:在类内部直接定义的类(可分为静态和非静态内部类)
  • 局部内部类:方法内、代码块内、构造器内

2. 关于内部类,需要关注三个点

  • 如何实例化成员内部类的对象
	Person.Don dog = new Person.Dog(); // 静态内部类的实例化方式
	Person.Bird bird = new Person().new Bird(); // 非静态内部类的实例化方式
  • 如何在成员内部类中区分调用外部类的结构
	System.out.println(name); // 直接调用形参
	System.out.println(this.name); // 调用内部类的非静态属性
	System.out.println(Person.this.name); // 调用外部类的非静态属性
  • 开发中,局部内部类的使用
	public Comparable getComparable(){
		// 方式一:
		// 内部类实现接口
		class MyComparable implements Comparable{
			// 重写接口中的方法
		}
		return new MyComparable(); // 创建并返回该类的对象
		// 方式二:匿名类
		return new Comparable(){
			// 重写接口中的方法
		}

	}

二、异常处理

1. Java程序在执行过程中所发生的异常时间可分为两类

  • Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一般不编写针对性的代码进行处理
  • Exception:其它因编程错误或偶然外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:

2. 异常处理:抓抛模型

  • 过程一:"抛":程序正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象,并将此抛出,一旦抛出对象以后,其后代码就不再执行;
  • 过程二:"抓":可以理解为异常的处理方式,
  1. try...catch...finally:
  2. throws:
11-16 23:55