public
 访问不受限制。
 
protected
 访问仅限于包含类或从包含类派生的类型。
  
private
 访问仅限于包含类型。刚学习.net ,问一下:protected private所定义的函数或者变量是受保护的,为什么要保护呢?是怕类里的内容 被实例化的对象修改吗? 可是非静态类的对象一般都用了new呀。

解决方案 »

  1.   

    为什么要保护呢
    人有心肺脾肝肾,这几个是不能随便给别人使用的,所以要private
    protected子类可以访问,父债子还
      

  2.   

    类的三大特性是封 装,继 承,多 态。 
    你说的问题主要是体现在类的封装性这方面,和另外两大特性也有关系。举个例子有一个加法工厂类 AddClass;
    public Class AddClass
    {
      //生产工作时要用到的变量;
      private a;
      private b;
      private c;
      //与外界客户接触时获取“原料”的方法
      public float Add(float x,float y)
      {
        a=x;
        b=y;
        Working();
        return c;
      } 
      private void Working()//生产工作时用到的方法
      {
        c=a+b;
      }
    }
    该工厂的经营模式是,生产“自主保密”,接业务时只需派出对象与客户联系获取“原料”即可;
    那现在该工厂首先需要两个方法,一个是“自主保密”的生产方法(private)Working()和一个与客户联系获取“原料”的方法(public)Add();
    Private:把类的属性和方法的实现隐藏不让外界知道;
    Public:  外部可以直接调用的属性和方法;
    Proptected与implicit 就不在一一列举,仁兄自己去看下吧。 
      

  3.   

    限制访问修饰符是很有必要的。我通常是这样想的,private帮助我完成一些初始化,有的时候初始化的代码很长,所以我单独写了一个方法。有的时候写几个helper方法,因为把所有的代码放在一个函数里,实在有些冗余,可读性也很差。protected,我觉得自己的方法可以做很多功能,也很有必要,希望派生类也可以从中获益,而且也可以通过调用这个方法,修改父类的一些属性。public,是你真正希望暴漏给外界来使用的属性或方法。internal,只能允许你在一个程序集内部使用。public可以在另一个程序集中使用。