内部类的定义:一个类的定义放在另一个类的内部 内部类作为外部类的一个成员,依附于外部类而存在的
*内部类是一个独立的类,生成独立的class文件,文件名格式为:外部类类名·$内部类名
包 包名在世界范围内不重复 (域名在世界范围内不重复)
把实现相同功能的java文件放到一个目录里
Com.oracle.xxx.xxx
域名 项目名称 导包的时候写到具体的类
TRL+SHIFT+F 代码格式化
构造代码快 一般用于给类里的变量进行初始化的 该代码快早于构造方法执行
静态代码块》构造代码块》构造方法
四种类型的内部类:成员内部类,方法内部类,匿名内部类,静态内部类
1.成员内部类 :在一个包含类中定义的不使用静态修饰符的类型,与成员变量、方法同一个层次,可以访问包含类所有的成员,在包含类中创建成员内部类实例的语法 this.new innerclass(); 在包含类外创建成员内部类实例的语法。(new Outerclass()).new Innerclass(); 创建外围对象之前不可能创建内部类的对象。
2.方法内部类:定义在 方法体中的类,方法内部类只能定义该内部类的方法内实例化,不可以在此方法外对其实例化。最少使用的内部类形式,如同本地变量的定义,不允许有访问修饰符。
3.静态内部类:不能与包含类同名 创建静态内部类实例的语法:
Outer.Inner inner = new Outer.Inner();
4 匿名内部类 只用到类的一个实例 类在定义后马上用到
*匿名内部类不能有构造方法。
*匿名内部类不能定义任何静态成员、静态方法
*匿名内部类不能是public,protected,private,static
*只能创建匿名内部类的一个实例
*一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类
异常 lang不用导包
Erro是处理运行环境方面的错误,这类异常主要和硬件有关系,通常程序不对这类异常进行处理
Exception用来表示程序活动导致的错误,异常处理机制是针对Exception类的
*运行时异常RuntimeException
1.不作处理
2.使用try-catch-finally语句捕获异常
Try{
//被保护区间 第一行
//用关键字try控制
//将可能导致异常的代码放在这里
//我们可以放置1到多行代码
}
catch(MyFirstError) {
// 处理MyFirstError的代码.
//MyFirstError的异常处理句柄
}
catch(MySecondError) {
// MySecondError异常处理句柄
}finally{
//无论try块中有无异常,最后必须执行 的代码
}
3.通过throws子句声明异常(该异常我自己不去处理,如果谁调用这个方法,必须把这个异常处理掉) main方法再往上抛给jvm虚拟机
*非运行时异常 必须进行处理
一个未捕获的异常可能导致程序停止
常用异常
java.lang.ArithmeticException 算术异常
java.lang.NullPointerException 空指针异常
java.lang.ArrayIndexoutOfBoundsException 数组越界异常
java.lang.SecurityException 安全异常
Java.lang.NegativeArraySizeException 负值数组大小异常