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