我发现创建一个类
比如
pow pp=new pow();
然后这个类的所有方法
pp.XX
都可以使用,但是那些类的方法可以设置为public和private等等
private是比较节省空间的,那不如我把所有方法都设置为private
反正通过PP都可以正常使用,那public属性的反而会出现调用错误,比如别的类也有个public名称一样的方法
不如都设置为private更好吗

解决方案 »

  1.   

    private,public 是访问限制符,private的属性只有这个类可以访问,而public的属性和方法别的类也可以访问。
    这两个要根据实际情况来用,不是说换就换的。
    当一个类的成员定义为public,就能够在类外访问,包括它的派生类。 
     当一个成员定义为private,它仅能在类内访问,不能被它的派生类访问。比如一个类要继承它的父类并且重写父类中的方法,那么父类中的方法就应该是public的。
      

  2.   

    private是为了更好的封装代码,这样的话外部类就访问不到此类的方法了。
    比如你肯定希望你有些私有的东西,只能自己用,就设置成private,这就是oo思想。
    private使得你的程序更安全,变量一般都是用private申明,然后再本类通过 set/get 方法控制该属性。并不是每个方法都要设置为private,有时外部类要调用你的方法,那要扩大访问范围。
    范围小到大:private->protected->friendly->public
    public:所有类可见。
    pirvate:只有同一类内部的方法可见,在有就是内部类也可以访问到。
    默认(friendly):包内可见。
    protected:继承可见
      

  3.   

    pow pp=new pow();
    然后这个类的所有方法
    pp.XX
    都可以使用?private的可以访问吗?你是在本类中调用的吧如果是在其他类中调用private方法是不可以用pp.xx调用的
    要不然private还有啥意义?
    楼主还没有明白访问限制符的作用
      

  4.   

    外部类要调用你的方法,那要扩大访问范围。 
    范围小到大:private->protected->friendly->public 
    public:所有类可见。 
    pirvate:只有同一类内部的方法可见,在有就是内部类也可以访问到。 
    默认(friendly):包内可见。 
    protected:继承可见
      

  5.   

    private是私有权限控制修饰符。一般只要不是对外提供的方法接口都可以修饰为private.
      

  6.   

    这是访问权限的问题
    去看一下 private->protected->friendly->public 
    的帮助文档 
      

  7.   

    private,public 是访问限制符,private的属性只有这个类可以访问,而public的属性和方法别的类也可以访问。 
    这两个要根据实际情况来用,不是说换就换的。 
    当一个类的成员定义为public,就能够在类外访问,包括它的派生类。 
    当一个成员定义为private,它仅能在类内访问,不能被它的派生类访问。
    http://e188e.cn为您提供
      

  8.   

    高内聚 ,低耦合。
    尽量封装类内部的一切属性。只对外暴露提供的方法。
    private 和public用的是最多的。private一般修饰属性,而且一个大的系统内部的类的属性一般是用private修饰的,只对外提供public的get和set方法,还可以加上控制逻辑。
    protected用的很少,一般是希望子类重写的方法才用protected修饰。
      

  9.   

      shi  a  shia
      

  10.   

    private和public各有各得作用吧,存在就是合理的
      

  11.   


    更正:范围小到大:private->friendly->protected->public
    private : 类内部可访问
    friendly: 类内部、包内部可访问
    protected: 类内部、包内部、其子类可访问
    public :所有的都可访问
      

  12.   

    “反正通过PP都可以正常使用,那public属性的反而会出现调用错误,比如别的类也有个public名称一样的方法不如都设置为private更好吗”
    --------------------------------
    反正都可以用,直接面向过程编程好了,写什么对象