C#构造函数实例

 using System;
class A
{
    public static int X;
    static A()
    {
        X = B.Y + 1;
        Console.WriteLine("static A()");
    }
}
class B
{
    public static int Y = A.X + 1;  
    static B(),
    {
        Console.WriteLine("static B()");
    }
    static void Main() //① 程序入口,
    {
        Console.WriteLine("X = {0}, Y = {1}", A.X, B.Y);//⑤ 输出结果
        Console.ReadLine();
    }
}


构造函数是类的一种特殊方法,它的特殊性主要体现在如下几方面:
      构造函数的方法名和类名相同;
      构造函数没有返回类型;
      构造函数的主要作用是完成对类对象的初始化工作;
      在创建一个类的新对象时,系统会自动调用该的构造函数初始化新对象;
      C#的类有两种构造函数:实例构造函数和静态构造函数。
      实例构造函数负责:初始化类中的实例变量,它只有在用户用new关键字时才被调用。而且作为引用类型的类;


例:

using System;

namespace gouzaohanshu
{
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            MyClass c = new MyClass();
            c.ShoeMsg();
        }
    }
    class MyClass
    {
        private string msg;
        public MyClass()
        {
            msg = "Hello World";
        }
        public void ShoeMsg()
        {
            Console.WriteLine(msg);
        }
    }
}



带参数的构造函数
         类一旦有了自己的构造函数后,无论是有参数的还是无参数,默认构造函数都将无效。
        下面的例了中,类MyClass的构造函数带有一个串型参数s,在使用new关键字实例化MyClass类时,传入了字符串”Hello World”.运行结果是在控制台上显示出”Hello World”。


例:

using System;

namespace daicanshugzhs
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            MyClass c = new MyClass("Hello World!");
            c.ShowMsg();
        }
    }
    class MyClass
    {
        private string msg;

        public MyClass(string s) //此构造函数是个带参数的函数
        {
            msg = s;
        }
        public void ShowMsg()
        {
            Console.WriteLine(msg);
        }
    }
}



构造函数的重载
        可以像重载方法一样,对一个类重载构造函数,途径是为构造函数提供不同的参数个数或参数类型。

例:

using System;

namespace gzhschongzai
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            MyClass c1 = new MyClass();//用无参构造函数实例化类MyClass
            MyClass c2 = new MyClass("Hello Everyone");//用有参构造函数实例化类MyClass
            c1.ShowMsg();
            c2.ShowMsg();
        }
    }
    class MyClass
    {
        private string msg;

        public MyClass() //定义无参构造函数
        {
            msg = "Hello World";
        }
        public MyClass(string s)//定义有参构造函数
        {
            msg = s;
        }
        public void ShowMsg()
        {
            Console.WriteLine(msg);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中的构造函数是用于创建和初始化类的实例的特殊方法。构造函数的名称与类名相同,并且没有返回类型。在创建类的对象时,构造函数会自动调用。 继承是面向对象编程中的一个重要概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。在C#中,使用冒号(:)来指定一个类继承自另一个类。 当子类继承父类时,子类会自动继承父类的构造函数。子类可以通过调用父类的构造函数来初始化从父类继承的成员变量和属性。在子类的构造函数中使用关键字base来调用父类的构造函数。 下面是一个示例代码,演示了C#构造函数和继承的用法: ```csharp // 父类 class Animal { public string Name { get; set; } // 父类的构造函数 public Animal(string name) { Name = name; } } // 子类 class Dog : Animal { public string Breed { get; set; } // 子类的构造函数 public Dog(string name, string breed) : base(name) { Breed = breed; } } // 使用 Dog myDog = new Dog("旺财", "哈士奇"); Console.WriteLine($"Name: {myDog.Name}, Breed: {myDog.Breed}"); ``` 在上面的示例中,Animal类有一个构造函数,接受一个name参数来初始化Name属性。Dog类继承自Animal类,并且有一个额外的属性Breed。Dog类的构造函数使用base关键字调用父类的构造函数来初始化从父类继承的Name属性,然后再初始化自己的Breed属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值