zoukankan      html  css  js  c++  java
  • 深入理解类

    1.类成员:数据成员:字段,常量

           函数成员:方法,属性,构造函数,析构函数,运算符,索引,事件

    类的结构:[特性] [修饰符]  核心声明

    修饰符:Public,Private,Static,Const

    2.字段:实例字段,静态字段,类的静态成员没有实例也可以访问。

    心得:程序可以以理解为CPU,栈可以理解为内存,堆可以理解为外存。CPU一般都需要从内存中读取数据,但也可以直接从外存中读取。声明相当于在内存或者外存中一段空间,并命名;实例化相当将内存空间的大小范围进一步确定,或者将外存的数据大小信息放入内存中。

    3.属性:属性声明和访问器,属性和关联字段,只读和只写属性,自动实现属性和静态属性

    注解:属性和他们的后备字段的几种命名约定

     1 //Camel 大小写风格:复合标识符中每个单词的首字母大写,除了第一个单词
     2 //Pascal大小写风格:复合标识符的每个单词首字母都是大写
     3 get读;set写
     4 public class C : MonoBehaviour {
     5     //第一种约定:两个名称使用相同的内容,但字段使用Camel大小写,属性使用Pascal大小写
     6     private int firstField;
     7     public  int FirstField
     8     {
     9         get { return firstField; }
    10         set { firstField = value; }
    11     }
    12     //第二种约定:字段使用Camel大小写,并以下划线开始,属性使用Pascal大小写
    13     private int _secondField;
    14     public  int SecondField
    15     {
    16         get { return _secondField; }
    17         set { _secondField = value; }
    18     }
    19 }

     4.构造函数:带参数的构造函数,默认构造函数,对象初始化语句

     5.readonly,this,partial和索引器

    6.屏蔽基类成员

    1     class SomeClass
    2     {
    3         public string Field;
    4     }
    5     class OtherClass : SomeClass
    6     {
    7         new public string Field;//用同样的名字屏蔽基类成员
    8     }

    7.使用基类的引用

     1 namespace ConsoleApp2
     2 {
     3     class SomeClass
     4     {
     5         public void Field() { }
     6     }
     7     class OtherClass : SomeClass
     8     {
     9         new public void Field() { }
    10     }
    11 
    12     class Program
    13     {
    14         static void Main()
    15         {
    16             OtherClass a = new OtherClass();
    17             SomeClass b = (OtherClass)a;//派生类的范围大于基类,可将派生类强制转换为基类
    18 
    19             a.Field();
    20             b.Field();
    21 
    22         }
    23     }
    24 }

    8.虚方法和派生类方法

     1 namespace ConsoleApp2
     2 {
     3     class Class1
     4     {
     5         virtual public void Field()
     6         {
     7             Console.WriteLine("基类方法");
     8         }
     9     }
    10     class Class11 : Class1
    11     {
    12         override public void Field()
    13         {
    14             Console.WriteLine("派生类方法");
    15         }
    16     }
    17 
    18     class Program
    19     {
    20         static void Main()
    21         {
    22             Class11 a = new Class11();
    23             Class1 b = (Class11)a;
    24 
    25             a.Field();
    26             b.Field();
    27             Console.ReadLine();
    28         }
    29     }
    30     
    31 }

    输出的结果均为派生类方法
  • 相关阅读:
    基本數據類型
    5月28号 垃圾回收机制
    5月28 基本运算符
    5月30日 循环之while循环
    5月28号 与用户交互
    5月31日 基本数据类型(列表类型 字典类型 元组)及其内置方法
    5月30号 基本数据类型(整数型 字符串类型)及其内置方法
    變量
    5月29日 学习笔记 可变不可变类型 成员运算符和身份运算符 条件 流程控制之if判断
    关于Flash CS4字体不能加粗的问题[附解决方法]
  • 原文地址:https://www.cnblogs.com/krystalstar/p/9679863.html
Copyright © 2011-2022 走看看