当前位置:编程学习 > C#/ASP.NET >>

C#基础知识整理:基础知识(3) 类的构造

我们定义了YSchool,YTeacher类,实例化对象时:

[csharp]
YSchool shool1 = new YSchool(); 
 
shool1.ID = 1; 
 
shool1.Name = "清华附中"; 
 
YSchool school2 = new YSchool(); 
 
school2.ID = 2; 
 
school2.Name = "北师大附中"; 
            YSchool shool1 = new YSchool();

            shool1.ID = 1;

            shool1.Name = "清华附中";

            YSchool school2 = new YSchool();

            school2.ID = 2;

            school2.Name = "北师大附中";
    这样写对不对呢,其实在逻辑上是不正确的,因为实例化对象时,它的属性应该是和实例化一起就有的,而不是后来再加属性。在程序中表现就是,属性要有初值。
所以,在类中就要有这样一个方法,无返回类型,方法名和类名相同,有参数类表或者没有参数列表。它就是构造方法,俗称“构造器”或“构造函数”。一个类中可以有一个或多个构造函数,当然有时你没写构造函数,这并不代表这个类就没有构造函数,它依然有一个默认的构造函数的。如果使多个构造函数的话,它们各自的参数列表必须不同。
下面以YSchool为例完善这个类。

[csharp] 
/// <summary>  
  /// YSchool类的id和name是它的固有属性,它的值应该是确定的。  
  /// 实例化的同时对属性赋初值,用到构造函数。  
  /// </summary>  
  public class YSchool 
  { 
      private int id = 0; 
 
      private string name = string.Empty; 
 
      public int ID 
      { 
          get 
          { 
              return this.id; 
          } 
      } 
 
      public string Name 
      { 
          get 
          { 
              return name; 
          } 
      } 
      /// <summary>  
      /// 没有参数的构造器称之为“默认构造器”;如果没有写一个构造器,那么  
      ///系统也会提供一个默认的构造器,所以说类至少有一个构造器;  
      ///当然,如果系统提供的默认构造函数,则属性初值为声明时赋的初值,如果声明  
      ///未赋初值,则是“类型默认值”,比如0或者null。  
      /// </summary>  
      public YSchool() 
      { 
          this.id = 0; 
 
          this.name = @"清华附中"; 
      } 
      /// <summary>  
      /// 带有参数列表的构造函数,  
      /// 属性的值就是传入的列表的值。  
      /// </summary>  
      /// <param name="id"></param>  
      /// <param name="name"></param>  
      public  YSchool(int id, string name) 
      { 
          this.id = id; 
 
          this.name = name; 
      } 
      public  YSchool(int id) 
      { 
          this.id = id; 
 
          this.name = @"陕科大附中"; 
      } 
  } 
  /// <summary>
    /// YSchool类的id和name是它的固有属性,它的值应该是确定的。
    /// 实例化的同时对属性赋初值,用到构造函数。
    /// </summary>
    public class YSchool
    {
        private int id = 0;

        private string name = string.Empty;

        public int ID
        {
            get
            {
                return this.id;
            }
        }

        public string Name
        {
            get
            {
                return name;
            }
        }
        /// <summary>
        /// 没有参数的构造器称之为“默认构造器”;如果没有写一个构造器,那么
        ///系统也会提供一个默认的构造器,所以说类至少有一个构造器;
        ///当然,如果系统提供的默认构造函数,则属性初值为声明时赋的初值,如果声明
        ///未赋初值,则是“类型默认值”,比如0或者null。
        /// </summary>
        public YSchool()
        {
            this.id = 0;

            this.name = @"清华附中";
        }
        /// <summary>
        /// 带有参数列表的构造函数,
        /// 属性的值就是传入的列表的值。
        /// </summary>
        /// <param name="id"></param>补充:软件开发 , C# ,

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,