----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
fianlly
{
//一定会被执行的代码。
//主要用于释放资源。无论是否发生异常,有些动作一定要执行,那么这些动作定义在finally代码块中。
}
在进行异常捕捉时,代码块的不同组合情况。
1,try catch finally
2,try catch //没有需要一定被执行的代码-不需要关闭资源的动作。
3,try finally。异常并没有被处理。但是确涉及到了资源的调用,资源需要被关闭。
所以就有了,将异常进行对外声明,因为没有catch,但是资源是在功能内部打开的,
必须要功能内部关闭。 就有了try 和finally的组合。
异常覆盖中的细节:
1,
子类在覆盖父类时,如果父类中被覆盖的方法抛出了异常,
那么子类覆盖的方法,只能抛出相同的异常,或者该异常的子类。
2,
如果父类的被覆盖方法抛出了多个异常,子类在覆盖时,只能
抛出这些异常的子集。
3,
如果被覆盖的方法没有抛出异常,
子类也不允许抛出异常。如果子类中真的出现异常,只能在子类方法内进行try处理,绝对不允许throws声明。
万一处理不了呢?你可以选择抛出运行时异常。
包:
定义包用关键字package 包名都是小写字母组成。
包的作用:
1,对类进行分类管理。
2,对类提供了多层名称空间。
包的体现形式就是文件夹。
包名.类名 才是类的全名称。
包与包之间的类的访问。
被访问的包中的类以及类中的成员必须被public修饰.
当包与包之间的类存在着继承时,
父类给不同包的子类提供了一个特殊的直接访问权限,保护权限protected。
不同包之间有两种权限可以用。
public,protected(局限性,只给不同包的子类提供使用)
Public 当前类 当前包 子孙类 不同包
Protected 当前类 当前包 子孙类(也可以是不同包中的子孙类)
Private 当前类
问题:有了包,类名变的很长,写起来非常麻烦。
解决办法:通过一个关键字来完成 import : 导入
import的出现,是为了简化类名的书写。
如果用到一个包中的多个类。可以使用通配符:*
记住:实际开发中,建议,用到哪个类,就导入哪个类。尽量不要写 * .
packa\DemoA.class
\abc\HaHa.class
import packa.*;//指的是packa目录下当前所有class类。不包括子包中的HaHa.class
如果要用到HaHa.class
需要这样导入:
import packa.abc.*;导入abc子包中的类。
当两个不同的包中出现了同名的类时,一定要用包名进行区分。
使用时,一定要写全类名,包名.类名
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------