java编程思想读书笔记(二)
1、finalize函数
java的finalize函数是用来清除垃圾用的,虽然java有自己的清除机制,但是在调用其他语言的dll的时候,不能保证这些dll的申请的内存会被释放,所以在finalized函数中释放。
2、方法重载
java和C++的一个区别是,可以对继承的函数进行重载,比如说
class AAA{ public void fun(){}; } class BBB extends AAA{ public void fun(int i){ }; }
在java中,BBB的类是可以调用fun()和fun(int i)的,但是在C++中,只能调用fun(int i),而fun()已经被覆盖掉了。
3、内部类
这个东西写了那么多字,其实就像古代男人(外部类)取老婆(内部类),老婆娶到手以后,就不能和别人随便见面,除非男人同意(外部类提供方法),一个男人娶多个老婆(多个内部类),内部类不能够被继承,子类和基类的内部类即使是同一个名字也是两个不同的类,婆婆可以和儿媳妇同名同姓,但是肯定不是一个人!
当然了,娶了老婆,钱(外部类的成员变量)就要给老婆花(调用),你的钱就是老婆的钱,老婆的钱么,对不起,还是老婆的钱。
4、容器
容器用法都差不多,不过不同的是,没有强制的类型要求,你可以往里面随便放东西,不像C++,只能调用同类型的对象。
不过java的容器,感觉不如c#好用。
5、异常控制
和c++,C#基本一样,子类的异常处理必须和基类一样,或者更加严格。