码迷,mamicode.com
首页 > Windows程序 > 详细

C#修饰符详解

时间:2015-10-23 22:49:02      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:

  大家在新浪微博 @蜀云泉 就可以找到我啦。

一、new

  别看new这个修饰符经常用,恐怕很多人都不知道其本质。我们先来看看new修饰符的官方定义:

  new 仅允许在嵌套类声明中使用,表明类中隐藏了由基类中继承而来的与类中同名的成员。

  看懂了吗?不懂没关系,咱们接着往下看

  首先,我定义一个类:

 1 namespace 修饰符概念
 2 {
 3     class new修饰符
 4     {
 5 
 6         private string StrName;
 7 
 8         public string strName
 9         {
10             get { return StrName; }
11             set { StrName = value; }
12         }
13 
14         private int IntPassWord;
15 
16         public int intPassWord
17         {
18             get { return IntPassWord; }
19             set { IntPassWord = value; }
20         }
21 
22         //上面是俩字段和属性,下面来构造,啊哈哈哈
23         public new修饰符( )
24         {
25             strName = "我是蜀云泉";
26             intPassWord = 1234567;
27         }
28     }
29 }

这个类里面有两个字段属性,一个构造,构造在new的时候会调用默认的那一个,其中构造的作用就是在new的时候初始化类数据。

  控制台代码及结果:

 1 namespace 修饰符概念
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             new修饰符 vae = new new修饰符();
 8             Console.WriteLine(vae.strName);
 9             Console.WriteLine(vae.intPassWord);
10             Console.ReadLine();
11         }
12     }
13 }

  技术分享

我的new修饰符这个类写完之后呢他是保存在硬盘中的,和内存没有半毛钱关系(除非这个类里面含有static关键字)。然后在控制台里面你new了一个该类类型的对象vae出来的时候,系统就会在内存中给这个对象vae分配一个该类大小的存储空间出来。就是这样。

 

二、public修饰符

  来看看官方的定义

  public  表示不限制对该类的访问

  public应该就不用讲了吧,这个用的最多,只要一个成员定义成public之后呢,该类内部可以随意的访问他,其他类也可以随意的访问他,该类被继承之后其子类也可以随意的访问他。通俗的说就是“我的就是大家的,随意拿去用,别客气”

三、protected修饰符

  来看看官方的定义

  protected  表示只能从所在类和所在类派生的子类进行访问

  看着官方的定义就应该明白了,我还是贴上代码吧:

  首先我新建一个类:  

 1 namespace 修饰符概念
 2 {
 3     class protected修饰符
 4     {
 5         private string StrName;
 6 
 7         protected string strName
 8         {
 9             get { return StrName; }
10             set { StrName = value; }
11         }
12 
13         protected void Start()
14         {
15             Console.WriteLine("这是被保护的一个方法");
16         }
17     }
18 }

  在控制台里面调用这个类里面的方法试试行不行:

  

namespace 修饰符概念
{
    class Program
    {
        static void Main(string[] args)
        {

             protected修饰符 vae = new protected修饰符();
             vae.
            
            Console.ReadLine();            
        }
    }
}

 

技术分享

结果是无法调用的。

 

接下来看看子类能不能调用:

 1 namespace 修饰符概念
 2 {
 3     class protected类的继承者:protected修饰符
 4     {       
 5 
 6         public void test()
 7         {
 8             Start();
 9         }
10     }
11 }

完全ok啊。

 

那么接下来我要做一个猜想了,其子类的实例化对象能不能调用这个保护的方法呢?

namespace 修饰符概念
{
    class Program
    {
        static void Main(string[] args)
        {
           
             protected类的继承者   vae = new protected类的继承者();
             vae.test();
          
            Console.ReadLine();            
        }
    }
}

技术分享

是可以的。好了,现在能完全了解protected的官方定义了吧。

 

C#修饰符详解

标签:

原文地址:http://www.cnblogs.com/yunquan/p/4905790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!