构造函数
构造函数用来创建对象,并且可以在构造函数中对对象进行初始化。
构造函数是用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。
构造函数可以有参数,new对象的时候传递函数参数即可
构造函数可以重载,也就是有多个参数不同的构造函数。
如果不指定构造函数,则类有一个默认的无参构造函数。
如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
class Program
{
static void Main(string[] args)
{
//构造函数 与类同名、没有返回值。void都没有、
Person p1 = new Person();//所以的类,都有一个默认的 构造函数,没有显示。可以自己添加。
Person p2 = new Person("王钢蛋");//可以调用 同名的构造函数, 参数要不同。
Person p3 = new Person("李铁蛋",20);
Console.WriteLine("姓名:{0},年龄:{1}",p1.Name,p1.Age);//输出
Console.WriteLine("姓名:{0},年龄:{1}", p2.Name, p2.Age);//输出
Console.WriteLine("姓名:{0},年龄:{1}", p3.Name, p3.Age);//输出
Console.ReadKey();
}
}
class Person//创建类
{
public int Age { set; get; }//创建一个全局属性
public string Name { set; get; }//创建一个全局属性
public Person()//这个是默认的构造函数,默认没显示。可以自己手动创建,可以创建一些初始值。
{
this.Age = 1;
this.Name="未命名";
}
public Person(string name)// 构造函数 可以重名 传递的 变量数不同。
{
this.Name = name;//赋值
}
public Person(string name,int age)//构造函数 可以重名 传递的 变量数不同。
{
this.Name = name;//赋值
this.Age = age;//赋值
}
}输出结果:
使用对象初始化器给对象赋值:
class Program
{
static void Main(string[] args)
{
Person p = new Person() { Age =5,Name="王钢蛋" };//使用对象初始化器,来初始化对象 new Person() 后面的"()"可省略不写
Console.WriteLine("我的名字叫{0},今年{1}岁了。",p.Name,p.Age);//输出。
Console.ReadKey();
}
}
class Person
{
private int _age;//字段
private string _name;//字段
//快速创建属性:将光标定位到字段上,同时按下 CTRL+R+E。
public int Age//属性
{
get{return _age;}
set{_age = value;}
}
public string Name//属性
{
get{return _name;}
set{_name = value;}
}
}输出结果:
对象初始化器 调用的是无参构造函数。
