zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    【LeetCode】048. Rotate Image
    【LeetCode】036. Valid Sudoku
    【LeetCode】060. Permutation Sequence
    【LeetCode】001. Two Sum
    【LeetCode】128. Longest Consecutive Sequence
    【LeetCode】081. Search in Rotated Sorted Array II
    【LeetCode】033. Search in Rotated Sorted Array
    顺时针打印矩阵
    矩形覆盖
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/DannyShi/p/4468956.html
Copyright © 2011-2022 走看看