定义 |
*构造函数可以有参数,new对象的时候传递函数参数即可
*如果不指定构造函数,则类有一个默认的无参构造函数
*如果制定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
*构造函数可以重载,也就是有多个参数不同的构造函数
使用构造方法能解决的问题 |
1.在赋初值时,重复的书写对象名
2.假如我们有一个属性,不允许用户随意改动,我们一般把这个属性定义为只读类型的属性,那么这个只读类型的属性就不能在实例化后对他赋值了,那么我们就可以通过构造方法来进行初始化
注意 |
1、定义了一个带参构造函数后,最好定义一个无参构造函数,这样可以避免子类调用时出错
2、调用基类构造函数:base() 或 :base(参数列表) 调用本类其它构造函数 :this() 或 :this(参数列表)
3、只有在用base显示调用父类的构造函数时,程序才不会默认的调用不带参数的构造函数。
我们定义一个好的类,如果没有写构造方法,那么编译器就会自动在这个类中给我们添加一个没有参数的构造方法
一旦我们写了一个构造方法,那么编译器就不再会给我们添加这个没有参数构造方法了
代码块(车票练习) |
public class Ticket
{
public Ticket (int distance)
{
if (distance <0)
{
distance = 0;
}
this._distance = distance;
}
int _distance;
public int Distance
{
get {
return _distance; }
}
double _price;
public double Price
{
get
{
if (_distance <= 100)
{
return _distance * 1.0;
}
else if (_distance <=200)
{
return _distance * 0.95;
}
else if (_distance <=300)
{
return _distance * 0.9;
}
else
{
return _distance * 0.8;
}
}
}
public void Show()
{
Console.WriteLine("{0}公里的价格为{1}",this .Distance,this .Price );
}
}