美文网首页
C#面向对象总结一类和实例化

C#面向对象总结一类和实例化

作者: X江 | 来源:发表于2017-03-09 15:42 被阅读467次

    1.类的声明

    // 声明一个 Person 类
    public class Person()
    {
        private string Name{ get; set; } // 这是 Person 类的一个自动属性
    }
    

    2.类的实例化

    // 使用 new 关键字实例化一个Person对象
    Person person = new Person();
    

    讲到实例化就有必要讲讲对象的生命周期了

    构造阶段 :实例化一个对象时,需要初始化该对象,这个过程叫构造阶段。由构造函数完成
    析构阶段 :在删除一个对象时,常常需要执行一些清理工作,例如,释放内存,这由析构函数完成。
    构造函数:
    构造函数又分为静态构造函数和实例构造函数,构造函数名称和类名相同,无返回值
    静态构造函数:在类的第一个实例创建时或引用任何静态成员之前,将自动调用静态构造函数。
    特点:

    • 无法直接调用静态构造函数
    • 典型用途:当类使用日志文件时,将使永这种够工作函数向日志文件中写入项
    • 如果静态构造函数引发异常,运行时将不会再次调用改构造函数,并在运行程序所在的应用程序域的生存期内,类型将保持未初始化

    实例构造函数:在使用new表达式创建一个类的实例时,会使用实例构造函数创建和初始化所有实例成员变量
    特点:

    • 若类中未显示声明实例构造函数,编译器会生成一个默认构造器来初始化成员属性。比如 int 初始化为 0。参见 默认值表
    • 若未声明构造函数的访问修饰符,默认是私有的(private),外部类不能通过此函数来实例化
    • 便利构造函数可以方便初始化实例成员
    public class Person()
    {
        // 这是 Person 类的一个自动属性
        private string Name{ get; set; } 
        // 静态构造函数
        static Person()
        {
        }
        // 默认实例构造函数
       public Person()
       {
       }
      // 自定义便利构造函数
      public Person(string name)
      {
          this.Name = name;
      }
     // Person类的析构函数
     ~Person()
    {
    }
    

    析构函数
    .NET Framework 使用析构函数来清理对象。一般情况下,不需要提供析构函数的代码,而是由默认的析构函数自动执行操作。但是,如果在删除对象实例前,需要完成一些重要的操作,就应提供具体的析构函数。
    例如,如果变量超出了范围,代码就不能访问它,但该变量仍存在于计算机内存的某个地方。只有在.NET 运行程序执行其垃圾回收,进行清理时,该实例才被彻底删除

    3.成员变量和属性

    // 声明一个 Person 类
    public class Person()
    {
        public string Name{ get; set; } // 自动属性,编译器会自动生成set、get方法
    
        // 成员变量
        private int _age;
        // 属性
        public int Age{
            get{return _age;}
            set{_age = value;}
        }
    }
    

    成员变量和属性的区别:成员变量就是普通的变量,属性和变量不同的是就是多了设置器和访问器,这样就可以过滤一些非法的赋值。

    【原】

    相关文章

      网友评论

          本文标题:C#面向对象总结一类和实例化

          本文链接:https://www.haomeiwen.com/subject/wzowgttx.html