一、面向对象的特征:继承、封装和多态
封装:
1.把数据和操作数据的方法封装起来(安全性更高),对数据的访问只提供接口,
2.面向对象本质:将现实世界描绘成完全自治,封闭的对象
3.我们在类中写方法就是对实现细节的一种封装,编写类就是对数据和数据操作的封装
结论:封装一切可以封装的东西,只对外提供最简单的接口,将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
好处:只能通过规定的方法访问数据。隐藏类的实例细节,方便修改和实现。
二、final, finally, finalize 的区别
final修饰符(关键字)
被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能既被abstract声明,又被final声明。
将变量或方法声明为final,可以保证他们在使用的过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取。被final声明的方法也同样只能使用,不能重载。
finally是在异常处理时提供finally块来执行任何清除操作。
不管有没有异常被抛出、捕获,finally块都会被执行。try块中的内容是在无异常时执行到结束。catch块中的内容,是在try块内容发生catch所声明的异常时,跳转到catch块中执行。
finally块则是无论异常是否发生,都会执行finally块的内容,所以在代码逻辑中有需要无论发生什么都必须执行的代码,就可以放在finally块中。
finalize是方法名。
java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
它是在object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者被执行其他清理工作。
finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
三、Exception、Error、运行时异常与一般异常有何异同