一点都不麻烦,它只是通过访问修饰符来控制的,我们昨天的例题中就用到过,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) // 方法的访问修饰符同样效果,可以尝试换着用用 |
在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呢,还有其他几个访问修饰符呢?
本文章为天轰穿原创文章,转载请注明出处及作者。