A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘永贵 中级黑马   /  2014-3-15 17:49  /  1340 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



这题选什么

9 个回复

倒序浏览
嗨,这个程序编译的时候回报错的,你的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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
选A,编译时报错,因为getNum()方法不是静态方法,不能调用

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
编译时会报错,因为静态的方法无法引用非静态的方法,如果要通过编译的话,需在int getNum()前加上“static”。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
main函数是静态的,在静态方法内是不能直接调用非静态方法的,所以选A

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
编译时报错,静态成员中不能直接使用非静态成员!

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
李猛 中级黑马 2014-3-15 20:31:17
7#
A  主函数是静态的,不能访问非静态的方法

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
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

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
静态方法不能访问非静态方法,非静态可以访问非静态,非静态也可以访问静态的,所以编译错误。。多错错,就会记住了。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
A啦  方法都不对应  static是静态的  而int是整型的哦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马