刚刚发现原来类的实例也不能调用类中private修饰的方法,在这里我想问问各位高手:既然private修饰的方法别的类不能用,本身对象也不能用,那么这个方法写着干什么?有人说为了封装,但我还是不大懂,封装了不让别人看到内部代码,但自己也不能用,那这个方法干嘛? 请各位高手耐心讲解一下,谢谢了!!!

解决方案 »

  1.   

    class Demo
    {
      private void A()
      {
        System.Console.WriteLine("这里是A方法!");
      }
      
      public void B()
      {
        A();   // <-- 可以在此调用 private 的方法。
      }
    }
      

  2.   

    你说的是对的,private方法在类外是不能调用的,但在类内是可以调用,二楼说的是一种调用,还是窗体控件的事件处理函数都是private的,例如点击控件事件处理函数,你说它没有用吗?点击控件引发一个事件,处理相关逻辑,实现相关功能。例如: 
     public partial class AddUserDlg : Form
        {
           private void tbConfirmPassword_Leave(object sender, EventArgs e)
            {
                if (this.tbConfirmPassword.Text != this.tbPassword.Text)
                {
                    MessageBox.Show("密码验证不正确!请重新输入。", "提示", MessageBoxButtons.
                                OK, MessageBoxIcon.Warning);
                    this.tbConfirmPassword.Clear();
                    this.tbPassword.Clear();
                }
            }
    }
    【初级学习软件开发者,为提高学习积极性,上传原创小软件,探讨交流学习心得体会和难题,因为兴趣而学,共同成长.群号:84849379。】
      

  3.   

    private  是对本类内部的 
      

  4.   

    说是为了封装这个思想你可以这样理解 假如以我要设计一个类叫做排序输出类 Sort.class这个类只需要给你一个整形数组来调用你的方法就可以排序那么你一定需要一个public方法来实现private方法用来干什么呢 通常我们需要把整个排序的逻辑放在private方法里面 也就是说在我在类内完成了排序工作假设这个排序总共分三步 取值 排序 输出 那么 那么我可以把这三个方法都放到各自的private方法里面而其中的排序方法可能有三个private算法 冒泡排序 选择排序 快速排序等然后用户只需要调用一个public方法就可以进行直接实现排序输出功能(封装的是整个操作的步骤)后面我可能给出其他的public方法 都是用来输出排序结果的 但是private组合却不一样 也就是说public出来的是一系列算法和步骤的封装用户只要按照需求选择public方法 至于里面做的步骤只有写代码的才清楚 (而多个private方法则是写代码着对代码的掌控和条理的清晰度的体现)这只是个排序类,我想越大越复杂的类这个说明起来会越明显