C#学习笔记(类的定义)

1 public

  共有访问。不受任何限制。

2 private

  私有访问。只限于本类成员访问,子类,实例都不能访问。

3 protected

  只限于本类和子类访问,实例不能访问。

4 internal

  内部访问。只限于本项目内访问,其他不能访问。

5 protected internal

  内部保护访问。只限于本项目或是子类访问,其他不能访问。

6 abstract

  抽象类

7 sealed

  密封的类

修饰符 含义
无或internal 只有在当前项目中访问类
public 可以在任何地方访问类
abstract或internal abstract 类只能在当前项目中访问,不能实例化,只能供继承之用
public abstract 类可以在任何地方访问,不能实例化,只能供继承之用
sealed或internal sealed 类只能在当前项目中访问,不能供派生之用,只能实例化
public sealed 类可以在任何地方访问,不能供派生之用,只能实例化

8 类和结构

先看一段实例代码

namespace Test

{

  class myClass

  {

    public int val;

  }

  struct myStruct

  {

    public int val;

  }

  class Program

  {

    static void Main(string[] args)

    { 

      myClass objectA = new myClass();

      myClass objectB = objectA;

      objectA.val = 10;

      objectB.val = 20;

      myStruct structA = new myStruct();

      myStruct structB = structA;

      structA.val = 30;

      structB.val = 40;

      Console.WriteLine("objectA.val = {0}",objectA.val);

      Console.WriteLine("objectB.val = {0}",objectB.val);

      Console.WriteLine("structA.val = {0}",structA.val);

      Console.WriteLine("structB.val = {0}",structB.val);

      Console.ReadKey();

    }

  }

}

输出结果为:

objectA = 20

objectB = 20

structA = 30

structB = 40

  对象是引用类型(objectA和objectB)。在把对象赋值给变量的时候,实际上是把带有一个指针的变量赋值给了该指针所指向的对象。在实际代码中,指针是内存中的一个地址,地址是内存中该对象所在的位置。在用下面的代码行把第一个对象引用赋值给类型为myClass的第二个变量时,实际上是复制了这个地址。

  myClass objectB = objectA;

  这样两个变量就包含同一个对象的指针。

  而结构是值类型。其变量并不包含结构的指针,而是包含结构本身。在用下面的代码把第一个结构赋值给类型为myStruct的第二个变量时,实际上是把第一个结构的所有信息复制到另一个结构中。

  myStrujct structB = structA;

 

posted @ 2015-04-30 15:06  DannyCat  阅读(377)  评论(0)    收藏  举报