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;