您的位置:首页 > 职场人生

黑马程序员_基础知识3

2014-04-08 23:11 225 查看

------------------------------------------------android培训java培训期待与您交流!-----------------------------------------------

内部类

❶内部类的访问规则
①内部类可以直接访问外部类中的成员,包括私有

       原因:内部类中持有了一个外部类的引用 如:外部类名.this

②外部类要访问内部类,必须建立内部类对象

Outer.Inner in = new Outer().new Inner();

❷被static修饰的内部类

①外部类访问被static修饰内部类的非静态成员方法

new Outer.Inner().function()在这里function是非静态方法

②外部类访问被static修饰内部类的静态成员方法

Outer.Inner.function()在这里function是静态方法

③只能直接访问外部类中的static成员

④当内部类中定义了静态成员,该内部类必须是static的

⑤当外部类中的静态方法访问内部类时,内部类也必须是static的

❸内部类的使用场景

当描述事物时,事物的内部还有事物,该事物用内部类来描述

异常

❶异常的概念

程序在运行过程中的一些特殊情况,例如:内存不够用,文件找不到,对象是Null,数组下标越界。当产生这些特殊情况的时候,可能会造成程序不能正常运行

❷异常的体系



❸异常体系的特点

异常体系中的所有类以及建立的对象都具备可抛性

也就是说可以被throw和throws关键字所操作,只有异常体系具备这个特点

❹Error与Exception的区别

①Error是程序无法处理的错误,比如OutOfMemoryError、ThreadDeath等。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止

②Exception是程序本身可以处理的异常,这种异常分两大类运行时异常和非运行时异常,程序中应当尽可能去处理这些异常

❺运行时异常和非运行时异常

①运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理,这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

②非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类,从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过,如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常

❻throw和throws关键字

①throw关键字是用于函数内部,用来抛出一个Throwable类型的异常,如果抛出了检查异常,则还应该在方法头部声明方法可能抛出的异常类型

②throws定义在函数上,用于抛出异常类

❼RuntimeException特点

①函数内如果抛出的RuntimeExcpetion异常,可以不用throws定义在函数上

②如果该异常的发生,无法在继续进行运算,就让自定义异常继承RuntimeException

❽RuntimeException特点

①函数内如果抛出的RuntimeExcpetion异常,可以不用throws定义在函数上

②如果该异常的发生,无法在继续进行运算,就让自定义异常继承RuntimeException

❾finally关键字

①finally块都会执行。

②finally中定义的通常是 关闭资源代码

③finally只有一种情况不会执行,当执行到System.exit(0);fianlly不会执行

❾三种异常处理格式

①try{}

catch (){}

②try{}

finally{}

③try{}

catch (){}

finally{}

❿异常注意事项

①子类抛出的异常必须是父类的异常的子类或者子集。

②如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛

总结一下Java异常处理的要点

①异常是程序运行过程过程出现的错误,在Java中用类来描述,用对象来表示具体的异常。

②Java将其区分为Error与Exception,Error是程序无力处理的错误,Exception是程序可以处理的错误,异常处理是为了程序的健壮性。

③Java异常类来自于Java API定义和用户扩展。通过继承Java API异常类可以实现异常的转译。

④异常能处理就处理,不能处理就抛出,最终没有处理的异常JVM会进行处理。 

⑤对于一个应用系统,设计一套良好的异常处理体系很重要。这一点在系统设计的时候就应该考虑到

⑥异常将问题进行封装,将正常流程代码和问题处理代码相分离,方便于阅读

-----------------------------------------android培训java培训、java学习型技术博客、期待与您交流! --------------------------




详情请查看:http://edu.csdn.net/heima


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: