zoukankan      html  css  js  c++  java
  • 10.C# 构造函数

    1.构造函数

    构造函数是用来初始化对象的,只能由new运算符调用。构造函数与类同名,没有返回值,不能用void修饰,可以有public和private两种修饰符,当用private修饰时外界不能访问到这个构造函数。

    C#有一个无参的默认构造函数,如果需要做特别的初始化可以自己添加构造函数,如

    class DisplayClass{
            public DisplayClass(string displayString)
            {
                Console.WriteLine(displayString);
                Console.WriteLine();
            }
    
            public DisplayClass()//默认构造函数
            { 
                
            }
        }

    2.构造函数执行顺序

    类继承时子类需要调用父类的构造函数才能正确初始化父类,如果子类没有显式调用父类的构造函数,系统会调用父类的默认构造函数,可以使用构造函数初始化器指定需要调用的父类构造函数,如下使用base调用父类的构造函数

        class BaseA
        {
          
            public BaseA()
            {
                Console.WriteLine("基类构造方法被调用");
            }
    
            public BaseA(string baseString)
            {
                Console.WriteLine(baseString);
            }
        }
    
        class DriveB : BaseA
        {
           
            public DriveB():base("基类构造方法被调用")
            {
                Console.WriteLine("继承类构造方法被调用");
            }
        }

    也可以使用this调用当前类其他构造函数

     class Person
        {
            int age;
            string name;
    
            public Person()
            { 
                
            }
    
            public Person(int age)
            {
                this.age = age;
            }
    
            public Person(int age, string name):this(age)
            {
                this.name = name;
            }
    
        }

    当有继承关系时构造函数的调用顺序 :System.Object的构造函数-> 基类的构造函数->子类的构造函数,因为所有类都是继承Object类的,所以最先调用Object类的构造函数

  • 相关阅读:
    HDU 2955 Robberies(01背包)
    HDU 2602 Bone Collector(01背包)
    HUST 1352 Repetitions of Substrings(字符串)
    HUST 1358 Uiwurerirexb jeqvad(模拟解密)
    HUST 1404 Hamming Distance(字符串)
    HDU 4520 小Q系列故事――最佳裁判(STL)
    HDU 2058 The sum problem(枚举)
    【破解】修改程序版权、添加弹窗
    HDU 1407 测试你是否和LTC水平一样高(枚举)
    HDU 1050 Moving Tables(贪心)
  • 原文地址:https://www.cnblogs.com/lidaying5/p/10511100.html
Copyright © 2011-2022 走看看