我们常用的private,public等来声明类,变量,方法,我就有点不明白了,我们何不把所有的类,方法,变量都声明成public,反正自己写的代码,全部暴露出来也不影响程序正常使用。
疑问就是声明成public,private,他们驻留在内存中是不是不一样?

解决方案 »

  1.   

    不希望public的地方有很多,有时候需要private,有时又需要internal。
      

  2.   

    全写public可以啊,但至少还有private protected internal这些做为可选,类之间的封闭,形成了与以往结构化程序不同的 思想,在维护,组件化等工作,或思想中起到重要作用。一锅粥式的程序,让业务概念更模糊,边界,职责不清晰,为程序埋下各种隐患,在可复用性,可维护性等方面,也暴露处种种不足,所以...才有面象对象以对付,原来结构化程序时代所产生的软件危机。
      

  3.   

    大家都可以很天真的认为所有的东西都是public的,你的就是我的,我的还是我的。
    这不就乱了吗?
    所以,必须要有非public的东西。
      

  4.   

    看来楼主对编程语言了解的很肤浅,public和private是要根据自己要实现的功能而定的,建议楼主把自己写的代码中private都改成public运行下,看看和之前的运行结果有什么区别,那样会让你有切身体会~
      

  5.   

    问题是现代的软件的开发往往不是一两个人完成的,需要大量的协作,这时Private,public的访问级别划分就很有必要了。
      

  6.   

    人也有隐私的 
    代码也是
    也有不想被外界知道和看到,修改的部分
    这就需要public之外的修饰符了
      

  7.   

    那用struct就可以了,全是public
      

  8.   

    你可以做很多事,比如说可以写个网站,还可以帮女朋友做个菜,也可以自己存点私房钱,老板可以调用你写网站,就好比是Public你朋友叫你做菜,因为是同一个家庭的事,所以好比是internal自己存私房钱,当然就是private
      

  9.   

    如果你类里有10个成员变量,这样的类有10个,使用的时候需要记住这100个变量,换人维护的时候或合作开发时候就痛苦了。巴不得接口越少越利于沟通。自己用就没所谓,反正代码没别人看。你爱怎么发挥都可以,不用面向对象思想,压根吧c#当vb6的c语言版也行。
      

  10.   


    我给你举个例子。
    假设:所有代码都是你自己来完成,以后也不会有人参与到你的项目中,会出现这种情况:
    你的A类调用B类的 方法1,B类的 方法1 调用 B类 方法2 才可以完成方法1任务,而A类无需调用B类的 方法2;如果两个方法全都Public,方法2会在A类调用B类时可见(比如在VS开发环境中打.就会出现),这样即使自己写代码,也很乱,明明用不到方法2,可方法2出现了,带来的麻烦就是找方法1也不容易。
    这只是两个方法,如果方法多了,方法命名也是个问题,全部Public至少会在这里造成混乱。
    这种现象在方法重载上比较常见。
      

  11.   

    这样看起来似乎在降低阅读程序的复杂度上也很必要,假如都是public那么协作项目的每个成员,要看到多很多与自己无关的变量
      

  12.   

    安全问题
    protected 保护变量 前台后台都能用
    private  就后台能用
    public 前后台都能用,别的页面也能用我的理解是这样, 可能是错的,,多多指导。
      

  13.   

    想的也没错.只是你没把自己灌输进OOP思想而已.
    让自己的思想没有束缚,其实也不是坏事.
      

  14.   

    楼主你的意思是自己练习的时候全写public,应该是没有问题的, 但平时养成好的习惯不是更好么。
    就像楼上很多人说的全裸了一个人在家里,谁看你啊。出门了别忘记把衣服穿上。
    你问了个很新手的问题,却被一些自以为动了私有和共有就了不起的人骂成XX了,真可怜,不过他们更可怜。
      

  15.   

    呵呵,可以,绝对可以,全部Public static 都可以,但是后果十分的严重,严重到你会丢饭碗。"疑问就是声明成public,private,他们驻留在内存中是不是不一样?"
    驻留是一样,但是生命周期不一样。
      

  16.   

    教材不是说清楚了,吗
    看来得给你一条限定
    不能写重复的代码
    这一点你能做到吗
    包括类的设计
    比如:一个医务有了name属性
        那院长就类,就不能写这个