【问题标题】:Java Method StubJava 方法存根
【发布时间】:2016-04-25 19:33:15
【问题描述】:

老师提出了这些问题:

假设从主方法调用以下内容,为此调用编写一个方法存根:String course = "band";int year = 2016;printRoster(course,year)

假设从主方法调用以下内容,为此调用编写一个方法存根:String item = enterDescription();

在没有其他信息的情况下,我对他通过编写方法存根想要什么以及意味着什么感到有些困惑。非常感谢您的帮助!

【问题讨论】:

标签: java methods stub


【解决方案1】:

方法存根(可能指方法签名)由访问类型、返回类型、其他关键字、方法名称及其参数组成。例如,主方法的方法存根是:

public static void main(String[])

您的老师要求您使用代码 sn-p 的上下文来确定方法存根的外观。例如,如果我有一个这样的方法:

int num = getNum();

那我知道了:

1) 这是在main方法里面,也就是static,所以getNum方法也必须是static

2) getNum 方法返回 int,因为它被分配给该类型的变量。

3) 没有参数被传递给getNum,所以它没有参数。

因此,我猜getNum() 的方法签名是:

static int getNum()

这是因为我不知道getNumpublicprivate

希望这可以帮助您了解问题并自行解决。

【讨论】:

    【解决方案2】:

    我假设他的意思是您需要为代码中的调用编写一个方法存根:

    String course = "band";
    int year = 2016;
    printRoster(course, year);
    

    还有……

    String item = enterDescription();
    

    所以……

    private void printRoster(String course, int year) {
        // For example...
        System.out.println("Course: " + course);
        System.out.println("Year: " + year);
    }
    
    private String enterDescription() {
        // Mocked return
        return "foobar";
    }
    

    除非他的意思是把代码本身存根,否则就是……

    private void doSomething() {
        String course = "band";
        int year = 2016;
        printRoster(course, year);
    }
    
    private void doSomethingElse() {
        String item = enterDescription();
    }
    

    我怀疑是前者。

    注意,如果方法是从静态上下文调用的,那么它们也应该被声明为静态的,除非你要实例化首先调用它们的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多