20191116java笔记:内部类

#1、内部类(Inner class)java

定义:在Java中,容许一个类的定义位于另外一个类的内部,前者称谓内部类,后者称为外部类编程

1.内部类的分类

  • 成员内部类:在类内部直接定义的类(可分为静态和非静态内部类)
  • 一方面,做为外部类的成员
  1. 调用外部类的结构(方法、属性)
  2. 调用外部类的属性和方法时,须要完整路径 Person.this.属性
  3. 能够被四种不一样的权限修饰
  • 另外一方面,做为一个类
  1. 能够定义属性方法和构造器
  2. 能够用final修饰,表示此类不能被继承;不适用final,则此内部类能够被继承
  3. 能够用abstract修饰
  • 局部内部类:方法内、代码块内、构造器内
  • 注意点1:在局部内部类的方法中,若是须要调用局部内部类所声明的方法中的局部变量的话,必须是final修饰的变量

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(){
			// 重写接口中的方法
		}
	
	}

2、异常处理

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

  • Error:Java虚拟机没法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重状况。通常不编写针对性的代码进行处理
  • Exception:其它因编程错误或偶然外在因素致使的通常性问题,可使用针对性的代码进行处理。例如:
  1. 空指针访问
  2. 试图读取不存在的文件
  3. 网络链接中断
  4. 数组角标越界

2. 异常处理:抓抛模型

  • 过程一:"抛":程序正常执行的过程当中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象,并将此抛出,一旦抛出对象之后,其后代码就再也不执行;
  • 过程二:"抓":能够理解为异常的处理方式,
  1. try...catch...finally:
  2. throws:
相关文章
相关标签/搜索