一、内部类及匿名内部类
格式:public class OuterClass
{
private int
public class InnerClass
{
}
}
1、内部类可以直接使用外部类中定义的所有属性和方法
2、外部类中的静态属性和方法不能在内部类中直接使用
3、创建内部类对象
实例内部类:
外部类.内部类 实例名=外部类对象名.new内部类构造方法();
静态内部类:
内部类 对象名=new外部类.内部类构造方法();
匿名内部类:
主要在实现接口和继承父类中体现
new 接口
{
实现接口中的所有方法
}
new 抽象类
{
实现父类中所有方法
}
二、Java类的组成成员
1.属性
2.方法
3.构造方法
4.内部类
5.代码块
普通代码块
{
比构造方法先执行,主要作用:
进行类中属性的默认赋值,可以给常量赋值
}
静态代码块
static {
在类加载到Java虚拟机中时就运行了
比构造方法先执行,主要作用:
进行类中属性的默认赋值,可以给常量赋值
}
Java中子类对象创建过程
父类中的静态代码块->子类静态代码块->父类代码块->父类构造方法->子类代码块->子类构造方法
三、Java异常处理
1. Error:导致虚拟机崩溃,此类错误不好处理(e.g内存溢出)
2. Exception:非正常,可以用代码处理
(Error和 Exception都是类)
常见异常:所有的异常父类都是都是Exception
IO流:
Java.lang.SQLException
JDBC数据编程:
java.sql.SQLException
运行时异常:java.lang.RunningTimeException
空指针异常:java.lang.NullPointerException
数组索引越界异常:java.lang.ArrayIndexOutOfBoundsException
算术异常:java.lang.ArithmeticException
数字格式异常:java.NumberFormatException
类转换异常: java.lang.ClassCastException
四、异常处理
1. throws
格式:方法名() throws 异常列表{}
该异常则由方法的调用者来处理或者继续抛出
依然会中断程序
2. try-catch
格式:
try {
//有可能出现异常的代码,若无异常就不会到catch中运行
}
catch(可能出现的异常类型 变量名)
{
//异常处理代码1,一般是打印出异常内容
}
catch(可能出现的异常类型 变量名)
{
//异常处理代码2,一般是打印出异常内容
}
注意:catch ()括号中的异常类型必须是从子类到父类,否则底下能处理的,上面的也能处理
......
finally
{
//无论是否发生异常都必须执行的代码
}
自定义异常
定义类extends Exception{
构造方法
}
引发异常
throw new 异常构造方法();
注意:return 和 throw关键字下一行不能直接跟代码