一点都不麻烦,它只是通过访问修饰符来控制的,我们昨天的例题中就用到过,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呢,还有其他几个访问修饰符呢?
本文章为天轰穿原创文章,转载请注明出处及作者。
请发表评论