当前位置: 技术问答>java相关
Java 访问控制的问题(public,private,protected,(default))!讨论讨论!
来源: 互联网 发布时间:2015-07-01
本文导语: 说来惭愧,到今天才明白了protected居然是同一个包中都可以访问到,本来以为只有子类能访问到,所以觉得java的语法很有些误导。 由此产生些问题,如果有一个变量只能子类访问,而包内不能访问,用什么修饰符?...
说来惭愧,到今天才明白了protected居然是同一个包中都可以访问到,本来以为只有子类能访问到,所以觉得java的语法很有些误导。
由此产生些问题,如果有一个变量只能子类访问,而包内不能访问,用什么修饰符?这种还是比较常见的控制难道就没有办法实现?
由此又产生了一个问题,到底包是什么概念,感觉就像一个大类:)
大家讨论讨论!分少不了大家!
由此产生些问题,如果有一个变量只能子类访问,而包内不能访问,用什么修饰符?这种还是比较常见的控制难道就没有办法实现?
由此又产生了一个问题,到底包是什么概念,感觉就像一个大类:)
大家讨论讨论!分少不了大家!
|
因为对于同一个包来说,类之间的关系还是比较密切的,而
java中有没有象c++那样使用friend,也就是扩充了protected
来代替friend吧。而且由于是在同一个包中的,进行控制也
很容易,就算将来要做修改,其范围也只是同一个包而已。
误导与否,只是看你的第一印象是什么,如果一开始你就
被告知protected就是包内可访问的,你就会觉得c++的protected
是在误导了。其实严格的说来,包的范围内进行控制,比
子类范围内进行控制更容易,因为一个包的修改更新,一般都是同
一个组织进行的,而子类,就有可能有成千上万的用户了,
那么这样,是不是又要提供一个包内可访问,子类不能访问
的修饰符呢?不同的人有不同的需要,要提供一个大而全的
语言,适合所有人的需要,必然导致语言的复杂性的增加,
入门的门槛必然就会提高,这样的话,java就不会有今天
这样的发展。
java中有没有象c++那样使用friend,也就是扩充了protected
来代替friend吧。而且由于是在同一个包中的,进行控制也
很容易,就算将来要做修改,其范围也只是同一个包而已。
误导与否,只是看你的第一印象是什么,如果一开始你就
被告知protected就是包内可访问的,你就会觉得c++的protected
是在误导了。其实严格的说来,包的范围内进行控制,比
子类范围内进行控制更容易,因为一个包的修改更新,一般都是同
一个组织进行的,而子类,就有可能有成千上万的用户了,
那么这样,是不是又要提供一个包内可访问,子类不能访问
的修饰符呢?不同的人有不同的需要,要提供一个大而全的
语言,适合所有人的需要,必然导致语言的复杂性的增加,
入门的门槛必然就会提高,这样的话,java就不会有今天
这样的发展。
|
个人认为包是一些类的集合,就像MFC的类库一样,提供一些类的方法。
至于访问控制的问题,看看java编程思想吧。
至于访问控制的问题,看看java编程思想吧。
|
声明称private,或者干脆不加(默认是private)。只能该class中访问。
包,给我的感觉象是工程
是介于系统其他文件和自身class之间的层次,不象类内部那么大的关联度,也不象系统其他文件之间没有关系。
呵呵,或者说象c里面的.a吧
关于public等之间的区别,《think in java》第一章有清楚的描述
包,给我的感觉象是工程
是介于系统其他文件和自身class之间的层次,不象类内部那么大的关联度,也不象系统其他文件之间没有关系。
呵呵,或者说象c里面的.a吧
关于public等之间的区别,《think in java》第一章有清楚的描述
|
其实包就是一个工程,主要是便于管理所用,至少我是这么理解的(jb新建一个工程,就是一个package,将其它零碎删除都行)