C# 构造函数
构造函数
构造函数 (Constructors) 是一种特殊的方法,用于初始化对象。构造函数的优势在于,当创建类的一个对象时,它会被调用。它可以用于为字段设置初始值:
实例
创建一个构造函数:
// 创建一个 Car 类
class Car
{
public string model; // 创建一个字段
// 为 Car 类创建一个类构造函数
public Car()
{
model = "Mustang"; // 为 model 设置初始值
}
static void Main(string[] args)
{
Car Ford = new Car(); // 创建一个 Car 类的对象(这将调用构造函数)
Console.WriteLine(Ford.model); // 打印 model 的值
}
}
// 输出 "Mustang"
提示
请注意,构造函数的名称必须与类名匹配,并且它不能具有返回类型(如 void 或 int)。
还要注意,当对象被创建时,构造函数会被调用。
默认地,所有类都有构造函数:如果你不自己创建类构造函数,C# 会为你创建一个。但是,那么你将无法为字段设置初始值。
构造函数节省时间!请查看此页面上的最后一个实例,以真正理解为什么。
构造函数参数 ( Constructor Parameters )
构造函数也可以接受参数,这些参数用于初始化字段。
以下实例向构造函数添加了一个字符串 modelName 参数。在构造函数内部,我们将 model 设置为 modelName (model=modelName)。当我们调用构造函数时,我们向构造函数传递一个参数 ("Mustang"),这将把 model 的值设置为 "Mustang":
实例
class Car
{
public string model;
// 创建一个带有参数的类构造函数
public Car(string modelName)
{
model = modelName;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang");
Console.WriteLine(Ford.model);
}
}
// 输出 "Mustang"
您可以拥有任意数量的参数:
实例
class Car
{
public string model;
public string color;
public int year;
// 创建一个带有多个参数的类构造函数
public Car(string modelName, string modelColor, int modelYear)
{
model = modelName;
color = modelColor;
year = modelYear;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang", "Red", 1969);
Console.WriteLine(Ford.color + " " + Ford.year + " " + Ford.model);
}
}
// 输出 Red 1969 Mustang
提示:与其他方法一样,构造函数可以通过使用不同数量的参数进行重载。
构造函数节省时间
当你考虑前一章中的例子时,你会注意到构造函数非常有用,因为它们有助于减少代码量:
没有构造函数:
prog.cs
class Program
{
static void Main(string[] args)
{
Car Ford = new Car();
Ford.model = "Mustang";
Ford.color = "red";
Ford.year = 1969;
Car Opel = new Car();
Opel.model = "Astra";
Opel.color = "white";
Opel.year = 2005;
Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
}
}
输出:
Mustang Astra
有构造函数:
prog.cs
class Program
{
static void Main(string[] args)
{
Car Ford = new Car("Mustang", "Red", 1969);
Car Opel = new Car("Astra", "White", 2005);
Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
}
}
输出:
Mustang Astra