为什么我要创建一个新的对象引用来执行函数调用而不是使用现有的函数调用?

时间:2016-04-03 21:53:35

标签: java class subclass

我的变量program是一个带有ByteCode子类对象列表的对象,我想用名为execute()的抽象方法执行它。 getNextCode()获取该列表中的下一个ByteCode对象。
我的问题是,为什么我要创建ByteCode的新实例只是为了调用execute()方法而不是仅引用列表中的实例并按照第二个代码框的方式调用execute方法?有区别吗?是否出于某种原因创建新实例更安全?它是否与动态绑定过程有关?

突出显示两个陈述

program.getNextCode(pc).execute(this);

 ByteCode code = program.getNextCode(pc); 
 code.execute(this);


  public void executeProgram() { 
          runStack = new RunTimeStack(); 
          returnAddrs = new Stack(); 
          isRunning = true;
          pc = 0;

           while (isRunning) {
            ByteCode code = program.getNextCode(pc); 
            code.execute(this);


   public void executeProgram(){

        runStack = new RunTimeStack();
        returnAddrs = new Stack();
        isRunning = true;
        pc = 0;

        while(isRunning){
        program.getNextCode(pc).execute(this);

1 个答案:

答案 0 :(得分:1)

在这段代码中:

 ByteCode code = program.getNextCode(pc); 

您没有创建新的ByteCode实例,只是引用 program.getNextCode(pc)返回的实例