我是否正确调用了?

时间:2011-10-27 09:31:19

标签: java methods invoke

我获得了一段代码(类QuestionTwo)。 在新创建的Q2类对象上调用方法mQ2之后,我被要求说明a,b和c的值。

我的main.java文件

package openuniversity;

public class Main
{
  public static void main(String[] args)
  {
    QuestionTwo qt = new QuestionTwo();
    qt.mQ2();
  }
}

我的QuestionTwo.java类文件:

package openuniversity;

public class QuestionTwo
{
  int a;
  int b = 1;

  public void mQ2()
  {
    {
      int c;
      int a = 2;
      c = a;
    } 

    {
      int c;
      int a;
      c = 3;
      a = 4;
    }

    a++;

  }
}

我到了:

a: 1
b: 1
c: 3

注意我也可以选择'undefined'作为答案? 那么它是1,1,未定义,因为c不存在于代码块之外吗?

问题:

研究以下代码,然后在新创建的Q2类对象上调用方法mQ2一次后,从下面的下拉列表中选择正确的a,b和c值的选项。请注意,您为a,b和c选择的答案可能彼此不同,也可能不同。

public class Q2
{
    int a;
    int b = 1;

    public void mQ2()
    {
        {
            int c;
            int a = 2;
            c = a;
        }
        {
            int c;
            int a;
            c = 3;
            a = 4;

            System.out.println("c: " + c);  //correct place?  
        }
        a++;
    }
    System.out.println("a: " + a + "b: " + b);  // correct place?
}

2 个答案:

答案 0 :(得分:1)

由于这是作业,我将限制我的答案。

  1. 您可以在调用mQ2()后打印出变量来验证您的解决方案(提示:您可以使用System.println())。
  2. 这可能是一个技巧问题,也可能是部分不明确的(提示:想想哪个 ab,特别是c你正在问了一下)。

答案 1 :(得分:0)

我建议您在调用mQ2后首先使用System.out.println()打印出所有值,然后在脑海中逐步执行代码以尝试找出为什么值是它们是什么。请记住,声明的任何变量只在范围内可见({...}为简单起见),但这些变量可以与其他变量具有相同的名称,因此即使它们不相同,它们看起来也可能相同。

我想特别指出在该方法之外不存在c。