通过面向对象,我们确定了对象,对象呢又是类的实例化。
类就是一个模子,确定了对象的属性和方法。
类里面有字段,属性,方法,还有构造函数,析构函数。
字段:存储数据,一般都是私有的private。
属性:保护字段,对字段的取值和设值进行限定。
方法:描述对象的行为。
构造函数:初始化对象(给对象的每个属性依次的赋值)。
析构函数:析构函数是在我们程序结束的时候调用,作用:帮助我们释放资源,
在c#里面,有一个专门的释放资源管理机制,就是GC(Garbage collection),
自动释放资源的,如果我们想立即释放资源就可以用到析构函数了。
通过一个练习,让大家更方便理解以上概念吧!
写一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值),不能为负数
有一个价格属性,价格属性只读
根据距离distance计算价格price(1元/公里)
在100公里以内 不打折
在101-200公里 打九五折
在201-300公里 打八五折
在300公里以上 打八折
class Ticket
{
//距离 字段
private double _distance;
//距离 属性
public double Distance
{
get{return _distance;}
}
//构造函数 初始化类的时候调用
public Ticket(double distance)
{
if(distance<0)
{
_distance=0;
}
Distance=this._distance;
}
//价格 字段
private double _price;
//价格 属性
public double Price
{
//get 只读
get{
//在100公里以内 不打折
//在101-200公里 打九五折
//在201-300公里 打八五折
//在300公里以上 打八折
if(_distance>0&&_distance<=100)
{
return _distance*1.0d;
}
else if(_distance>=101&&_distance<=200)
{
return _distance*0.95d;
}
else if(_distance>=201&&_distance<=300)
{
return _distance*0.85d;
}
else
{return _distance*0.8d;}
}
}
public void ShowTicket()
{
Console.WriteLine({0}公里需要{1}元,Distance,Price);
}
//析构函数
~Ticket()
{
Console.WriteLine(“我是析构函数”);
}
}
class Program
{
static void Main()
{
Ticket t=new Ticket(90);
t.ShowTicket();
Console.ReadKey();
//通过运行程序,结果应该是 90公里需要90元。
}
}