构造函数 example1: static void Main( string [] args){ SE engineer = new SE(); engineer.Age = 25 ; enginner.Name = 艾边成 ; // 省略其他属性赋值操作 Console.WriteLine(engineer.SayHi()); } 我们知道要使用类的属性和方法,首先要对类进行实例化,
构造函数
example1:
1 2 3 4 5 6 7 8 9 | <span style= "color: #0000ff" > static </span> <span style= "color: #0000ff" >void</span> Main(<span style= "color: #0000ff" >string</span><span style= "color: #000000" > [] args)
{
SE engineer</span>=<span style= "color: #0000ff" > new </span><span style= "color: #000000" > SE();
engineer.Age</span>=<span style= "color: #800080" >25</span><span style= "color: #000000" >;
enginner.Name</span>=<span style= "color: #800000" > "</span><span style=" color: #800000 ">艾边成</span><span style=" color: #800000 ">" </span><span style= "color: #000000" >;
</span><span style= "color: #008000" >
<span style= "color: #000000" > Console.WriteLine(engineer.SayHi());
}</span>
|
Copier après la connexion
我们知道要使用类的属性和方法,首先要对类进行实例化,在实例1中通过SE engineer=new SE();创建SE对象,这种创建类实例的方法称为构造函数、
示例1中调用构造函数创建SE对象并为其属性一一赋值如果不赋值系统将给类的各个字段赋默认值。
从示例1中可以看出,类的构造函数是类中的一种特殊方法,它具有一下特征
- 方法名与类名相同
- 没有返回值类型
- 主要完成对象的初始化工作。
here:
我们在做开发时,一般不再构造函数中作对类的实例初始化以外的事情,不要尝试显示的调用构造函数
无参构造函数
语法:
1 2 3 4 | <span style= "color: #008000" >
<span style= "color: #000000" >{
</span><span style= "color: #008000" >
}
|
Copier après la connexion
带参构造函数
语法:
1 2 3 4 | <span style= "color: #008000" >
<span style= "color: #000000" >{
</span><span style= "color: #008000" >
}
|
Copier après la connexion
隐式构造函数
当我们没有在类中显示的定义一个类的构造函数时,系统会自动给我们隐式的定义一个没有方法体的无参构造,这就是隐式构造函数,值得注意的是当我们显示的定义类的构造时系统就不会在为我们定义该类的隐式构造函数了
方法重载
构造函数的重载
example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <span style= "color: #000000" >Public Class SE
{
</span><span style= "color: #0000ff" >string</span><span style= "color: #000000" > id;
</span><span style= "color: #0000ff" >string</span><span style= "color: #000000" > name;
</span><span style= "color: #008000" >
<span style= "color: #0000ff" > public </span> SE(<span style= "color: #0000ff" >string</span> id,<span style= "color: #0000ff" >string</span><span style= "color: #000000" > name)
{
</span><span style= "color: #0000ff" >this</span>.id=<span style= "color: #000000" >id;
</span><span style= "color: #0000ff" >this</span>.name=<span style= "color: #000000" >name;
}
</span><span style= "color: #008000" >
<span style= "color: #0000ff" > public </span><span style= "color: #000000" > SE()
{
}
</span><span style= "color: #008000" >
}
|
Copier après la connexion
从这段代码程序可以明显的看出,在SE类有两个方法名相同但参数个数不同的构造函数,这种方式就是方法重载。
从以上示例我们可以总结出方法重载的特点
- 方法名相同
- 方法参数类型不同或参数个数不同
- 在同一个类中
需要注意的是方法名一参数类表相同的方法,近视返回值类型不同,不能称为方法重载、
方法重载示例
example:
1 2 3 4 5 | Public <span style= "color: #0000ff" > static </span> <span style= "color: #0000ff" >void</span> Main(<span style= "color: #0000ff" >string</span><span style= "color: #000000" > [] args)
{
Console.WriteLine(</span><span style= "color: #800080" >8</span><span style= "color: #000000" >);
Console.WriteLine(</span><span style= "color: #800000" > "</span><span style=" color: #800000 ">Hello</span><span style=" color: #800000 ">" </span><span style= "color: #000000" >);
}</span>
|
Copier après la connexion
在example中我们可以看出第一个WriteLine方法接受一个int类型参数,第二个WriteLine方法接受一个string类型参数。WriteLine()提供了多种重载方法,满足各种需求、