什么是构造函数和构造函数的特点
构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员变量; 构造函数的名称必须与类相同; 当类没有定义构造函数时,编译器会自动生成一个默认的无参的构造函数,但该构造函数不会执行任何代码; 构造函数没有返回值; 构造函数在对象实例化时会被自动调用,且只运行一次;(在以下的代码中有体现!) 普通的方法在程序执行到它时被调用,且可以被对象调用多次。
如何输出带参数的构造函数
因为一个类中可以有多个构造函数,所以需要通过是否有参数和参数的类型来决定输出哪个构造函数。举例:
//using System;
namespace Hutao
{
class Keqin
{
public Keqin()
{
Console.WriteLine("我是无参的构造函数");
}
public Keqin(float w)
{
Console.WriteLine("我是参数为float的构造函数");
}
public Keqin(int t)
{
Console.WriteLine("我是参数为int的构造函数");
}
static void Main(String[] args)
{
Keqin k = new Keqin(2);//由于参数为int型,所以运行参数为int的构造函数
int a;
a = 666;
Console.WriteLine(a);
}
}
}
这结果是: 同理,当参数为float时,将会运行参数为float的构造函数.
如何向父类的构造函数传参
在C#学习中,继承的学习是必须的,那么当父类的构造函数需要参数时,我们该怎么传参呢?先来看以下代码:
//using System;
namespace Keqin
{
class L
{
public string a;
public L(string a)
{
this.a = a;
Console.WriteLine("张三的性别是:"+a);
}
}
class Hutao:L
{
public Hutao():base("男")
{
Console.WriteLine("真帅啊!");
}
public static void Main(String[] args)
{
Hutao hutao = new Hutao();
}
}
}
易知L是父类,Hutao是子类.我们可在子类中通过关键字base来向父类中的构造函数传参.
|