我是编程的新手,现在我对变量和属性进行了查询,即“声明公共变量和公共属性之间有什么区别?”。有人可以用一些例子解释我吗?
答案 0 :(得分:0)
为了澄清约翰所说的一些内容,属性允许你为你正在做的事情添加限制和逻辑。
例如,如果我有一个矩形类
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)}} 物业运作良好。
当然没有规则是最终的。
我希望这能让你对属性与变量有一个基本的了解,不过一如既往,还有很多东西需要学习。
祝你好运!