这个属于程序封装的问题,你可以把一个类中所有的属性都设为public,并且这样也不会引起程序错误,但这样的话你就把一个类中所有的信息都透漏出来,会引起诸多方面的安全问题。
这方面的讨论很多,可以找找相关的资料

解决方案 »

  1.   

    public 公有
    private 私有 只有内部成员函数才能访问;不能继承,
    protected 不能水平继承,只能垂直访问;
    set,get 方法这是访问函数的接口而已。
    欲知详情,看书去
      

  2.   

    private 以及public 是为了一些安全性考虑设置的。
    在程序中你可以自由的调用你的private 以及public 方法以及变量
    但是在程序实例对象中,你就不能在调用属于private 的方法和变量了!
      

  3.   

    也要避免混淆要不每个都是public,就是每个都有那么多的方法了
    :)
      

  4.   

    就像你的居室,你可以把钥匙挂在门上,任何人都可以随便进入(public);或者是把钥匙挂在自己的腰上,任何人通过允许你才可以进入(private以及setter&getter)你喜欢哪种。反正我是喜欢第二种,我可不喜欢别人随便闯入,就算要进入的话我的先准备一下:)当然你也可以把钥匙给你的家人每人一把(默认)如果,你认为你的儿子也可以随便进而不用担心他看到什么的话:),给他也留一把(protected)
      

  5.   

    public 公有
    private 私有 只有内部成员函数才能访问;不能继承,
    protected 不能水平继承,只能垂直访问;
    private 以及public 是为了一些安全性考虑设置的。
    在程序中你可以自由的调用你的private 以及public 方法以及变量
    但是在程序实例对象中,你就不能在调用属于private 的方法和变量了!
      

  6.   

    请给出一个例子,能够说明为什么要用private而不用public(只是针对能够进行修改的属性,只读属性就不用了),然后解释原因。先谢谢了。
      

  7.   

    class Card {
        public String name;
        private String password;
    }
    比如这个类是一个银行卡类。把卡号设为public可以让其它人看到,以便于其它人向你的账户里汇钱。你如果不想让别人把账号里的钱拿走,密码就要设为private。别人无论如何也是得不到你的密码的。
      

  8.   

    有些属性的修改也不是可以让外部任何程序都可以操作的,可以通过访问某个public方法来再调用,这样如果你更改这个属性修改方法的实现或者参数,只需要更改这个方法和那个public的调用方式就可以了,不需要到所有调用的地方都去修改,程序大了这个是很麻烦的。