---------android培训、java培训、期待与您交流! ----------
1.内部访问类规则
class Outer{
......
class Inner{
...
}
}
(1) 内部类可以直接访问外部类中的成员,包括私有(通常省略Outer.this)
(2) 外部类访问内部类必须建立内部类的实例
(3) 内部类定义规则: 当一个类需要直接访问另一个类的成员时,这时可以定义内部类
(4) static修饰的成员变量,不能修饰局部变量
2.静态内部类:只能直接访问外部类中的静态成员(即静态只能访问静态)
(1) 外部类访问静态内部类的非静态成员:new Outer.Inner().function();
(2) 外部类访问静态内部类的静态成员: Outer.Inner.function();
(3) 当内部类中定义了静态成员,那么该内部类必须是静态的,否则编译不通过
3.匿名内部类:是内部类的简写形式,没有名字的内部类
(1) 在定义匿名内部类时,必须继承一个类(Object类也可)或实现一个接口
(2) 匿名内部类的格式:
class Outer{
private String name;
new 父类或接口 {
子类的内容/可以覆盖父类方法 ;
//public void show(){
// ...
// }
...
};//.show();
//红色部分是一个匿名内部类,由此可知匿名内部类是一个匿名子类对象
}
(3) 匿名内部类主要是用于简化代码,它里面的方法不超过3个.
4.异常(Throwable):程序运行时出现不正常的情况
(1) 异常由来:我们在处理现实生活中的事物时,不可避免的会产生各种问题,这些问题相对程序来说就是异常.
(2) 异常分类:异常可分为严重的和非严重的两类.
严重的通过Error类描述,非严重的异常通过Exception类描述
(3) 重点掌握Exception类处理异常 (要么catch,要么throws)
Exception类又可分运行时异常和非运行时异常
RuntimeExcption又是Exception类中的特殊异常,调用者可以不处理,而可以编译通过,但是在运行时会抛出异常
(4) 对多异常的处理:使用catch捕捉特定异常,捕捉异常的顺序由某段抛异常的代码决定,但父类Exception类必须在所有catch最后
(5) 自定义异常类
步骤: ①继承Exception类或RuntimeException类或其他异常类
②可以自定义异常信息,只需在自定义异常的构造函数中调用super(String message)即可
public class FushuException extends Exception {//自定义一个负数异常
public FushuException(String msg){
super(msg);
}
}
class ExceptionTest{
public int oper(int a,int b)throws FushuException{
if(b<0){
throw new FushuException(" / by FuShu");
}
return a/b;
}
}
(6) Throws和Throw的区别
Throws 在函数后(小括号与大括号之间),后面跟的是异常类(可多个)
Throw 在函数内,后面跟的是异常对象
(7) 小结
编译时被检测的异常(若不处理,无法通过编译)
编译时不被检测的异常(运行时异常,RuntimeException及子类),运行时让程序停下,修正代码。
5.异常——finally
(1) try-catch块、try-finally块、try-catch-finally块
(2) finally是始终会执行的块,唯一不执行的情况System.exit(0),finally通常用来关闭资源
public class FinallyDemo {
/**
* @param args
*/
public static void main(String[] args) {
ExceptionTest et=new ExceptionTest();
try{
et.clac(1, 0);
System.out.println("try");
}catch(OwnDefindException e){
System.out.println(e.toString());
return;
}finally{
System.out.println("finally");
}
System.out.println("over");
}
}
(3) 异常覆盖
① 子类覆盖父类方法时,如果父类抛出异常,子类只能抛该类异常或该类异常子类.
②如果父类抛出多个异常时,那么子类覆盖时,只能抛父类的子集.
③如果父类或接口方法中没有异常,那么子类不可以抛异常,只能catch住
6.异常总结
(1) 异常体系:Throwable(Error、Exception)
(2) 异常体系的特点:异常体系中的所有类具备可抛性,亦由Throws、throw操作
(3) 所有throw抛出的异常,可catch可Throws,若未处理该异常必须是RuntimeException类及子类
(4) throw new Exception()代码后不能定义语句,和break、continue、return类似,否则编译失败
7.包与包之间的访问
(1) 被访问的包中的类及成员需要被public修饰
(2) 不同包中的子类还可以直接访问父类中被protected修饰的成员
(3) 导入包:关键字import:为了简化类名的书写而使用的关键字
(4) Java压缩包
① 方便项目的携带,方便于使用,只要才classpath设置jar路径即可。数据库驱动,SSH框架是以jar包体现的。
② jar包压缩的格式:jar –cf haha.jar pack1 pack2… haha代表jar包的文件名,pack1是要压缩的文件1 文件2
③ jar包查看内容:jar –tf haha.jar
④ 把jar包放到classpath文件路径下可以直接运行jar包内部的类
---------android培训、java培训、期待与您交流! ----------