为了澄清约翰所说的一点,属性允许您为所做的事情添加限制和逻辑。
例如,如果我有一个矩形类
class Rectangle
{
private float mWidth;
private float mHeight;
private float mArea;
public float width
{
get
{
return mWidth;
}
set
{
mWidth = value;
mArea = mHeight*mWidth;
}
}
public float height
{
get
{
return mHeight;
}
set
{
mHeight = value;
mArea = mHeight*mWidth;
}
}
public float area()
{
return mArea;
}
}
所以 rect.width += 20;
将更新宽度和面积;
显然这是一个愚蠢的例子,但你可以在没有宽度和高度属性的情况下这样做,而是使用公共变量而不是直接使用
public float area
{
get
{
return width*height;
}
}
如果你说 float x = rect.area,这会给你正确的区域,但不会让你说 rect.area = 40。
您可以对属性进行更多更深入的操作,例如数据绑定,但如果您刚开始编程,稍后会介绍。
目前,您可以将属性视为一种方便的方法,不需要 () 并且可以接受或给出变量。
如果它只做获取和设置,那么作为变量可能会更好。
如果它在做大量的内部工作,并且影响了你的大部分课程,那么它可能应该是一个方法。
如果是快速功能
验证输入(浮动旋转{set{mRotation = value%360;}})
或多重检查输出( bool isInMotion{get{return (!isTurning && !isMoving)}}
属性运行良好。
当然,没有规则是最终的。
我希望这能让您对属性与变量有一个基本的了解,尽管与往常一样,还有很多东西要学。
祝你好运!