to zfluo:有一个包内可访问,子类不能访问 的修饰符啊?不加任何修饰符的默认就是这种情况。但你前面的说法还是有道理的。只不过我说的情况应该也是存在的:就是只能子类访问,而包内不能访问。有一种理解,同一个包肯定是有一个人或小组开发的,其中的访问控制要求比较低,基本上像开发一个类文件一样,你不用过多考虑有哪些变量会被误改等。当基于一种假设的考虑一般很难做到完整!举个例子,如果有一个变量是打算子类继承的,但我不希望一个开发小组的人不小心直接改动它,如果那种情况下束手无策的话,让人失望。其实C++很多特性如多重继承都是在发现一种情况不能表达后加进去的,你可以不用或很少用或尽量不用,但你不能想用的时候发现根本没办法!:(
包,给我的感觉象是工程
是介于系统其他文件和自身class之间的层次,不象类内部那么大的关联度,也不象系统其他文件之间没有关系。
呵呵,或者说象c里面的.a吧
关于public等之间的区别,《think in java》第一章有清楚的描述
区别我差不多都知道了,只不过觉得有疑问,想证实一下是不是自己孤陋寡闻!
继续继续!
java中有没有象c++那样使用friend,也就是扩充了protected
来代替friend吧。而且由于是在同一个包中的,进行控制也
很容易,就算将来要做修改,其范围也只是同一个包而已。
误导与否,只是看你的第一印象是什么,如果一开始你就
被告知protected就是包内可访问的,你就会觉得c++的protected
是在误导了。其实严格的说来,包的范围内进行控制,比
子类范围内进行控制更容易,因为一个包的修改更新,一般都是同
一个组织进行的,而子类,就有可能有成千上万的用户了,
那么这样,是不是又要提供一个包内可访问,子类不能访问
的修饰符呢?不同的人有不同的需要,要提供一个大而全的
语言,适合所有人的需要,必然导致语言的复杂性的增加,
入门的门槛必然就会提高,这样的话,java就不会有今天
这样的发展。
的修饰符啊?不加任何修饰符的默认就是这种情况。但你前面的说法还是有道理的。只不过我说的情况应该也是存在的:就是只能子类访问,而包内不能访问。有一种理解,同一个包肯定是有一个人或小组开发的,其中的访问控制要求比较低,基本上像开发一个类文件一样,你不用过多考虑有哪些变量会被误改等。当基于一种假设的考虑一般很难做到完整!举个例子,如果有一个变量是打算子类继承的,但我不希望一个开发小组的人不小心直接改动它,如果那种情况下束手无策的话,让人失望。其实C++很多特性如多重继承都是在发现一种情况不能表达后加进去的,你可以不用或很少用或尽量不用,但你不能想用的时候发现根本没办法!:(