15.Final修饰符的用法。
1)用final修饰的类不能被继承,没有子类。
2)用final修饰的方法不能被子类的方法覆盖。
3)用final修饰的变量表示常量。
4)final不能用来修饰构造方法。
5)用final修饰的变量表示常量,只能被赋一次值。
16.Static修饰符的用法。
1)静态变量在内存中只有一个拷贝,在类的所有实例中共享。
2)在静态方法中不能直接访问实例方法和实例变量。3)在静态方法中不能使用this和super关键字。4)静态方法不能被abstract修饰。
5)静态方法和静态变量都可以通过类名直接被访问。6)在类被加载时,静态代码块只被执行一次。类中不同的静态代码块按它们在类中出现的顺序被依次执行。
17.接口的特征。
1)接口中的成员变量默认都是public、static、final 类型的,必须被显示初始化。
2)接口中的方法默认都是public、abstract类型的。3)接口中只能包含public、static、final类型的
成员变量和public、abstract类型的成员方法。
4)接口没有构造方法,不能被实例化。
5)一个接口不能实现另一个接口,但它可以继承多个其他接口。
6)接口必须通过类来实现它的抽象方法。
7)与子类继承抽象父类相似,当类实现某个接口时,它必须实现接口中的所有抽象方法,否则这个类必须被定义为抽象类。
8)不能创建接口的实例,但允许定义接口类型的引用变量,该变量引用实现了这个接口的类的实例。9)一个类只能继承一个直接的父类,但能实现多个接口。
18.比较抽象类与接口。
抽象类与接口都位于继承树的上层,它们具有以下的相同点:
1)代表系统的抽象层。2)都不能被实例化。3)都能包含抽象方法。这些抽象方法用于描述系统能提供那些服务,
但不必提供具体的实现。
抽象类与接口主要有两大区别:
1)在抽象类中可以为部分方法提供默认的实现,从
而避免在子类中重复实现它们,提高代码的可重用性,这是抽象类的
优势所在;而接口中只能包含抽象的方法。
2)一个类只能继承一个直接的父类,这个父类有可能是抽象类;但一个类可以实现多个接口,这是接口的优势所在。
实例化类和实例化对象接口和抽象类各有优缺点,开发人员应该扬长避短,发挥接口和抽象类各自的长处。使用接口和抽象类总的原则如下:
1)用接口作为系统与外界交互的窗口。
2)由于外界使用者依赖系统的接口,并且系统内部会实现接口,因此接口本身必须十分稳定,接口一旦制定,就不允许
随意修改,否则会对外界使用者及系统内部都造成影响。
3)用抽象类来定制系统中的扩展点。
19.传统的异常处理与java异常处理有什么区别。1)传统的表示异常情况的能力有限,仅靠方法的返回值难以表达异常情况所包含的所有信息。Java把不同类型的异常
情况进行分类,用java类来表示异常情况,这种
类被称为异常类。
2)传统异常流程的代码和正常流程的代码混合在一起,会影响程序的可读性,容易增加程序结构的复杂性。Java异常
流程的代码和正常流程的代码分离,提高了程序的可读性,简化了程序的结构。
3)随着系统规模的不断扩大,传统处理方式已经成为创建大型可维护应用程序的障碍。Java可以灵活的处理异常,如果
当前方法有能力处理异常,就捕获并处理它,否则只需要抛出异常,由方法调用者来处理它。
20.Java中的异常处理机制的简单原理和应用。
当java程序违反了java的语义规则时,java虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况,
一种是java类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的
子类。
21.异常处理的优点和缺点及处理原则。
Java异常处理机制有以下的优点:
1)把不同类型的异常情况进行分类,用java类来表示异常情况,这种类被称为异常类。
2)异常流程的代码和正常流程的代码分离,提高了程序的可读性,简化了程序的结构。
3)可以灵活的处理异常,如果当前方法有能力处理异常,就捕获并处理它,否则只需要抛出异常,由方法调用者来处理它。
异常处理只能用于非正常情况,用异常来控制程序的正常流程具有以下的缺点:
1)滥用异常流程会降低程序的性能。
2)用异常处理来表示正常的情况,违背了异常处理的机制。
3)模糊了程序代码的意图,影响可读性。
4)容易覆盖程序代码中的错误,增加了调试的复杂性。
所以异常处理应该遵循以下原则:
1)异常只能用于非正常情况。2)为异常提供说明文档。3)尽可能地避免异常,尤其是运行时异常。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论