这个代码的构造函数是什么?
这个代码里面有构造函数吗?记得构造函数是进行类对象初始化工作,其函数名与类名相同。在没有自定义构造函数的情况下,会自动调用默认的无参数的构造函数,即所有成员全部初始化为0值。即数字为0,BOOL 为false,任何引用类型为null。那这个代码的构造函数是什么,是null的状态下也能运行正常吗?
<script runat="server" Language="C#">
public class Car
{
private string color;
private int gear;
public string Color
{
get
{
return color;
}
set
{
color=value;
}
}
public int Gear
{
get
{
return gear;
}
}
public void ChangeGear(int direction)
{
if(direction<0)
gear-=1;
if(direction>0)
gear+=1;
if(gear>5)
gear=5;
if(gear<-1)
gear=-1;
}
public void ChangeGear(string Direction)
{
if(Direction.ToLower()=="down")
ChangeGear(-1);
if(Direction.ToLower()=="up")
ChangeGear(+1);
}
public Car() //这个是不是构造函数?
{
color="Cold gray steel";
}
}
void Page_Load()
{
Car MyCar=new Car();
Response.Write("<b>New object 'MyCar' created.</b>");
Response.Write("<b>Color:"+MyCar.Color);
Response.Write("<b>Gear:"+MyCar.Gear);
MyCar.Color="Black";
Response.Write("<b>Properties updated.</b>");
Response.Write("<br>New color:"+MyCar.Color);
Response.Write("<br>New gear:"+MyCar.Gear);
MyCar.ChangeGear("up");
Response.Write("<br><b>Shifted 'up' one gear.</b>");
Response.Write("<br>New Gear:"+MyCar.Gear);
}
</script>
------解决方案--------------------C# code
public Car()
{
color="Cold gray steel";
}
------解决方案--------------------
public Car() //这是构造函数?
{
color="Cold gray steel";
}
------解决方案--------------------
Car()括号里没有参数是因为它是一个无参的构造函数,你也可以自己给它创建几个带参的构造函数:
C# code
Car(string aa)//这里是带一个参数的构造函数
{
color=aa;
}
------解决方案--------------------
构造函数是可以不带参数的!
------解决方案--------------------
最起码还有一个静态构造函数,在初始化时,静态构造函数最先执行
------解决方案--------------------
public Car()
{
color="Cold gray steel";
}
//这是构造函数,
color是他的一个私有成员。
color 可以通过 Color 属性提取,
还有构造函数可以没有参数, 默认的构造函数就是无参的,还可以写自己的无参构造函数
------解决方案--------------------
Car MyCar=new Car();
执行这句的时候就会调用构造方法 就会给color变量赋值