“那是什么意思?”;在java中,我们在运行时更改任何对象的行为;
我正在阅读,Oriely设计模式,其中有一行““那是什么意思?”;在java中,我们在运行时更改任何对象的行为;,java,runtime,Java,Runtime,我正在阅读,Oriely设计模式,其中有一行“我们可以改变 运行时的任何对象“&如何使用getter和setter在运行时更改对象的行为 行为就是对象的工作方式。运行时是应用程序的生命周期。所以那个语句意味着在程序运行期间,我们能够操纵对象可以做什么 要进行模拟,请参见以下示例: public class MyObjectTest { public static final void main(String[] args) { MyObject myObject = new MyO
我们可以改变
运行时的任何对象
“&如何使用getter和setter在运行时更改对象的行为 行为就是对象的工作方式。运行时是应用程序的生命周期。所以那个语句意味着在程序运行期间,我们能够操纵对象可以做什么
要进行模拟,请参见以下示例:
public class MyObjectTest {
public static final void main(String[] args) {
MyObject myObject = new MyObject();
String theMessage = "No message yet.";
theMessage = myObject.readSecretMessage();
myObject.setIsSafe(true);
theMessage = myObject.readSecretMessage();
}
}
public class MyObject {
private boolean isSafe = false;
public boolean isSafe() {
return this.isSafe;
}
public boolean setIsSafe(boolean isSafe) {
return this.isSafe = isSafe;
}
public String readSecretMessage() {
if(isSafe()) {
return "We are safe, so we can share the secret";
}
return "They is no secret message here.";
}
}
分析:
程序将返回两条不同的消息,决定取决于字段isSafe
。可以在运行时的对象生命周期(对象生命周期从运算符new
开始)期间修改
这意味着,我们可以改变物体的行为 从表面上看,它毫无意义,或者至少是不正确的。您可以更改对象的属性,但不能更改其行为(当然,除非其行为取决于其属性的值)。您必须提供更多的上下文来理解这一点。让我在运行时交替用2条腿和4条腿行走猫:)。。基本上,这意味着您可以在运行时使用getter和setter更改Cat的行为
class Cat
{
int legs = 2;
public void walk() {
System.out.println("Walking on " + legs + " legs");
}
public int getLegs()
{
return legs;
}
public void setLegs(int legs)
{
this.legs = legs;
}
}
public void static main()
{
Cat c = new Cat();
c.setLegs(4);
c.walk();
c.setLegs(2);
c.walk();
}
它还说了什么?您能提供更多与这一行相关的上下文吗?我们能说MyObject类是一种“有状态类”吗?