黑马程序员技术交流社区

标题: 这题选什么 [打印本页]

作者: 刘永贵    时间: 2014-3-15 17:49
标题: 这题选什么


这题选什么

作者: 王浩龙    时间: 2014-3-15 17:56
嗨,这个程序编译的时候回报错的,你的main函数是static的所以这个方法也必须是静态的。
代码可以作如下修改
  1. public class StringMethods {
  2.         public static void main(String[] args) {
  3.                 int num = getNum();
  4.                 System.out.println(num);
  5.                
  6.         }
  7.         public static int getNum(){
  8.                 int num = 1;
  9.                 return num++;
  10.          }
  11. }
复制代码

作者: 12560zhang    时间: 2014-3-15 18:00
选A,编译时报错,因为getNum()方法不是静态方法,不能调用
作者: ok-Prince    时间: 2014-3-15 18:05
编译时会报错,因为静态的方法无法引用非静态的方法,如果要通过编译的话,需在int getNum()前加上“static”。
作者: 乔钰博    时间: 2014-3-15 19:02
main函数是静态的,在静态方法内是不能直接调用非静态方法的,所以选A
作者: 张贺    时间: 2014-3-15 19:30
编译时报错,静态成员中不能直接使用非静态成员!
作者: 李猛    时间: 2014-3-15 20:31
A  主函数是静态的,不能访问非静态的方法
作者: 骑着毛驴去赶    时间: 2014-3-15 22:14
A因为主方法是静态的,静态的方法调用的方法必须是静态的,而getNumf()方法不是静态的,所以在编译时会发生:Exception in thread "main" java.lang.Error: Unresolved compilation problem:
        Cannot make a static reference to the non-static method getNum() from the type StringMethods异常应该将getNum()方法加上static
作者: 小龙编程世界    时间: 2014-3-16 19:32
静态方法不能访问非静态方法,非静态可以访问非静态,非静态也可以访问静态的,所以编译错误。。多错错,就会记住了。
作者: 911趣购    时间: 2014-3-16 19:50
A啦  方法都不对应  static是静态的  而int是整型的哦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2