当前位置:  技术问答>java相关

Java 访问控制的问题(public,private,protected,(default))!讨论讨论!

    来源: 互联网  发布时间:2015-07-01

    本文导语:  说来惭愧,到今天才明白了protected居然是同一个包中都可以访问到,本来以为只有子类能访问到,所以觉得java的语法很有些误导。 由此产生些问题,如果有一个变量只能子类访问,而包内不能访问,用什么修饰符?...

说来惭愧,到今天才明白了protected居然是同一个包中都可以访问到,本来以为只有子类能访问到,所以觉得java的语法很有些误导。
由此产生些问题,如果有一个变量只能子类访问,而包内不能访问,用什么修饰符?这种还是比较常见的控制难道就没有办法实现?
由此又产生了一个问题,到底包是什么概念,感觉就像一个大类:)
大家讨论讨论!分少不了大家!

|
因为对于同一个包来说,类之间的关系还是比较密切的,而
java中有没有象c++那样使用friend,也就是扩充了protected
来代替friend吧。而且由于是在同一个包中的,进行控制也
很容易,就算将来要做修改,其范围也只是同一个包而已。
误导与否,只是看你的第一印象是什么,如果一开始你就
被告知protected就是包内可访问的,你就会觉得c++的protected
是在误导了。其实严格的说来,包的范围内进行控制,比
子类范围内进行控制更容易,因为一个包的修改更新,一般都是同
一个组织进行的,而子类,就有可能有成千上万的用户了,
那么这样,是不是又要提供一个包内可访问,子类不能访问
的修饰符呢?不同的人有不同的需要,要提供一个大而全的
语言,适合所有人的需要,必然导致语言的复杂性的增加,
入门的门槛必然就会提高,这样的话,java就不会有今天
这样的发展。

|
个人认为包是一些类的集合,就像MFC的类库一样,提供一些类的方法。

至于访问控制的问题,看看java编程思想吧。

|
声明称private,或者干脆不加(默认是private)。只能该class中访问。
包,给我的感觉象是工程
是介于系统其他文件和自身class之间的层次,不象类内部那么大的关联度,也不象系统其他文件之间没有关系。
呵呵,或者说象c里面的.a吧
关于public等之间的区别,《think in java》第一章有清楚的描述

|
其实包就是一个工程,主要是便于管理所用,至少我是这么理解的(jb新建一个工程,就是一个package,将其它零碎删除都行)

    
 
 

您可能感兴趣的文章:

  • Java 可以做拨号程序吗?我只是和大家讨论讨论 不必太认真
  • 用java开发一个基于Proxy(代理)的网络计费系统。有兴趣的来讨论讨论
  • 哪位高手有兴趣跟我讨论讨论java中调用dll文件??小弟有些问题还是不很清楚??
  • 和Java版高手在线讨论代理服务器的问题,讨论者都有分。
  • 谁会JAVA让我们共同学习和讨论JAVA
  • 大家来讨论一下java 的发展前景 iis7站长之家
  • 用java做c/s结构可行吗???大家来讨论讨论,应该都会有收获。
  • LINUX下JAVA要代替C..?常跟朋友讨论的一个问题
  • 用java做mis系统怎么样,用什么软件较好?希望大家讨论,论者有分!
  • 大家来讨论一下java 的发展前景
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • 有关JAVA的Package,ClassPath的讨论,诸位看过来
  • 讨论:Java是否适合编写通常的应用程序?
  • 请大家来讨论一下JAVA的速度问题
  • 标题怎么会是“讨论Java,JavaScript等开发技术”?
  • 请问有没有国内外人气较旺的讨论java的irc服务器?
  • Java与IE的问题!大家来讨论!
  • 高手讨论,有谁做过电子邮局,用java做的?
  • 请大家讨论,来者有分,java中多个线程之间共享数据的方法都有哪些?
  • 讨论:请问各位用什么工具开发java程序?
  • java命名空间javax.lang.model.element枚举modifier的类成员方法: protected定义及介绍
  • 基于Java protected的深入理解
  • java命名空间java.lang.reflect类modifier的类成员方法: protected定义及介绍
  • java 类修饰符(private,public和protected)所代表的权限
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.lang.model.element枚举modifier的类成员方法: private定义及介绍
  • java命名空间java.lang.reflect类modifier的类成员方法: private定义及介绍
  • java命名空间java.lang类character.unicodeblock的类成员方法: private_use_area定义及介绍
  • java命名空间javax.crypto类cipher的类成员方法: private_key定义及介绍
  • java命名空间java.lang类character的类成员方法: private_use定义及介绍
  • java命名空间java.lang类character.unicodeblock的类成员方法: supplementary_private_use_area_a定义及介绍
  • java命名空间java.lang类character.unicodeblock的类成员方法: supplementary_private_use_area_b定义及介绍
  • java命名空间java.lang类character.unicodeblock的类成员方法: high_private_use_surrogates定义及介绍
  • java命名空间java.nio.channels类filechannel.mapmode的类成员方法: private定义及介绍
  • java命名空间java.security枚举keyrep.type的类成员方法: private定义及介绍
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 请问java程序中的import为什么有的用java.….*,而有的又用java.….…,有什么区别吗?
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmname定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3