C#构造方法重载

1、什么是构造方法?

首先,它是一个方法,它是类中 众多方法中的一个。其次,它具有类中其他方法所不具备的一些特性。

在类执行开始的时候,执行这个方法。

2、构造方法相对其他方法有哪些不同?

方法名:类中普通的方法可以根据代码书写者的个人喜好任意取名。但是,构造方法不可以。构造方法的名字必须与类名相同。换句话说,当类中的一个方法名与类名相同时,C#即认为此方法为类的构造方法。

执行顺序:类中的普通方法是在类实例化之后被调用执行的,而构造方法则是在类实例化之前执行的。

Circle圆类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace over
{
    class Circle
    {
        public int r;

        public Circle()//不带参数的构造方法,为默认构造方法
        {
            Console.WriteLine("Circle类的构造方法被调用");
            r = 10;
        }

        public Circle(int rid)
        {
            Console.WriteLine("Circle类中重载了的构造方法被调用");
            r = rid;
        }

        public double s()
        {
            return Math.PI * r * r;
        }
    }
}

  

  在没有添加构造方法的时候,默认类中会为我们添加一个不带参数,名字和类名相同的方法,这个方法被称为构造方法,构造方法无需添加void ,int等关键字,直接public+方法名()

  Program类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace over
{

    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            p.run();

        }

        void run()
        {
            Circle c;
            c = new Circle();
   //       c = new Circle(20);// 传递参数20到circle类中,调用重载了的带int rid参数的构造方法


            double area = c.s();
            Console.WriteLine(area);
           
          
            Console.ReadKey();

        }

    }

}

  

实例化一个Circle属性的c,

 Circle c = new Circle();
在不传值的情况下,默认掉用的是不带参数的构造方法,定义了r=10;

在执行

c = new Circle(20);
传递参数20,调用的是重载的public Circle(int rid)构造方法,这是r=20;


原文地址:https://www.cnblogs.com/SeekHit/p/4321155.html