C#中如何进行构造方法
构造方法的定义
(1)构造方法的名字必须与定义它的类名完全相同,并且没有返回类型。
(2)构造方法是在使用new关键字创建对象时系统自动调用的。
(3)构造方法是在初始化对象时给对象成员赋初始值的。
通过构造方法可以实现在创建对象同时对读一下进行初始化,且构造方法是可以重载的。
构造方法的使用
下面通过一个案例来演示构造方法的使用:
在控制台中新建一个Customer类,在类中建立一个构造方法,代码如图所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GouZaoFangFa
{
public class Customer
{
//构造方法与类名相同,并且没有返回值类型
//定义一个带三个参数的构造方法
public Customer(string name,int age,string address)
{
Name = name;//不能直接访问字段,使用属性进行封装
Age = age;//左边的大写开头的代表属性,右边的代表参数
Address = address;
}
public string Name { get; set; } //默认get:name=value,set:return name
public int Age { get; set; }
public string Address { get; set; }
}
}
在Program中对构造方法进行调用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GouZaoFangFa
{
class Program
{
static void Main(string[] args)
{
//在默认情况下,系统会给类分配一个无参构造方法
//Customer customer = new Customer(); //调用系统默认提供无参构造方法
//customer.Name = "张三";
//customer.Age = 18;
//customer.Address = "北京";
//当用户手动定义了构造方法后,系统不会再提供无参数的构造方法
//使用构造方法可以在创建对象的时候就给对象进行初始化赋值
Customer customer = new Customer("张三", 18, "北京");
//打印客户信息
Console.WriteLine("客户信息:");
Console.WriteLine("姓名:" + customer.Name);
Console.WriteLine("年龄:" + customer.Age + "岁");
Console.WriteLine("地址:" + customer.Address);
}
}
}
结果如图所示:
构造方法的重载
构造方法也是允许重载的,下面给大家演示一下构造方法如何进行重载。
Customer类中代码如下:
namespace GouZaoFangFa
{
public class Customer
{
//构造方法与类名相同,并且没有返回值类型
//1、定义无参构造方法,也就是系统自带的构造方法
public Customer() { }
//2、定义含两个参数的构造方法
public Customer(string name, int age)
{
Name = name;
Age = age;
Address = "不详";
}
//3、定义含三个参数的构造方法
public Customer(string name,int age,string address)
{
Name = name;
Age = age;
Address = address;
}
public string Name { get; set; } //默认get:name=value,set:return name
public int Age { get; set; }
public string Address { get; set; }
}
}
Program中代码如何:
namespace GouZaoFangFa
{
class Program
{
static void Main(string[] args)
{
//在默认情况下,系统会给类分配一个无参构造方法
//Customer customer = new Customer(); //调用系统默认提供无参构造方法
//customer.Name = "张三";
//customer.Age = 18;
//customer.Address = "北京";
//当用户手动定义了构造方法后,系统不会再提供无参数的构造方法
//使用构造方法可以在创建对象的时候就给对象进行初始化赋值
//调用含三个参数的构造方法
Customer customer = new Customer("张三", 18, "北京");
//调用含两个参数的构造方法
Customer customer1 = new Customer("张三", 18, "北京");
//调用无参构造方法
Customer customer2 = new Customer();
//打印客户信息
Console.WriteLine("客户信息:");
Console.WriteLine("姓名:" + customer.Name);
Console.WriteLine("年龄:" + customer.Age + "岁");
Console.WriteLine("地址:" + customer.Address);
}
}
注意事项
1、构造方法如果在类中没有进行显示的定义,系统提供一个无参的构造方法。
2、在定义构造方法时,构造方法也是允许重载的,所以可以定义多种形式的构造方法,来满足我们在不同情况下对对象的一个创建。