我在OOP中有一个普遍的问题,就是如果我们改变对象的状态,是否改变了对象的行为?更改对象的状态是否会导致更改其行为?
public class Test{
private int x;
private string y;
public Foo(int bar, string baz)
{
x = bar;
y = baz;
}
public void ChangeBar(int newBar)
{
x = newBar;
}
}
例如:
var obj = new Test (5, "yyy");
如果我改变y
价值"www"
,是否意味着中obj
行为有变化?
'obj'实际上并没有任何行为。你的问题是一个理论/措辞问题吗? – luk2302
在这个例子中,你的'obj'只会引用另一个新的对象。在没有说明什么是对象行为对你意味着什么的情况下,我们只能继续猜测。 – AndrewMcCoist