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

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#面向对象总结一类和实例化)