博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

一点都不麻烦,它只是通过访问修饰符来控制的,我们昨天的例题中就用到过,public 就是一个,不过它的作用就是将成员完全公开出来。接下来我们看下全部访问修饰符。

Public——允许任何人来访问。

Internal——只要在同一个项目(不是解决方案)中均可访问。

protected——继承时子类可以对基类有完全访问权。

protected internal ——唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。

private——只允许同一个类中的成员访问。


例:做一个商品出售的Demo 界面如图4-14
 

                                4-14

创建一个Products的类,在Products.cs中添加如下的代码:

public class Products

    {

        public int number;          //对外公开,无保护

        // private int number;      // 访问权限为私有,只有本类内部可以访问

        // protected int number;    //继承保护,只有本类自身和其子类可以访问,外部不访问

        // internal int number;     // 只要在同一个项目(不是解决方案)中均可访问

        // int number;              // 不行,因为在默认的情况下是pravite限制符

        public bool sold(int amt) // 方法的访问修饰符同样效果,可以尝试换着用用
        {
            number -= amt;
            return true;
        }
    }

From1窗体上鼠标右键-查看代码,在From1的构造函数(后面具体讨论构造函数)中初始化,代码如下

public partial class Form1 : Form

    {

        Products p;         //这里申明一个私有的Products类型变量,没有访问修饰符默认为私有

        public Form1()

        {

            InitializeComponent();

            p= new Products();

            p.number = 1000;  //尝试将Products中几个字段的访问修饰符换下,看看这里的效果

            label2.Text = p.number.ToString();

        }
    }

双击From1窗体上【出售】按钮,在事件中添加如下代码:

private void button1_Click(object sender, EventArgs e)

        {

            //尝试将Products中几个字段的访问修饰符换下,看看这里访问方法的效果

            p.sold(Convert.ToInt32(tb_num.Text));

            label2.Text = p.number.ToString();

        }

    

       小天:也就是说如果将字段、常量、方法等用private修饰后,那么这些对象就只有在当前类的内部可以访问对吧?可是什么情况下用private,什么情况下用public呢,还有其他几个访问修饰符呢?

本文章为天轰穿原创文章,转载请注明出处及作者。