黑马程序员_基础知识3

时间:2022-10-20 00:43:35


------------------------------------------------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,数组下标越界。当产生这些特殊情况的时候,可能会造成程序不能正常运行

❷异常的体系

黑马程序员_基础知识3

❸异常体系的特点

异常体系中的所有类以及建立的对象都具备可抛性
也就是说可以被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