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;