黑马程序员技术交流社区
标题:
有没有人会这个?
[打印本页]
作者:
@ne_pie尒ce
时间:
2013-11-8 18:06
标题:
有没有人会这个?
public class String {
/**
* @param args
*/
public static void main(String[] args){
// TODO Auto-generated method stub
System.out.println("string");
}
}
运行结果:
错误: 在类 String 中找不到主方法, 请将主方法定义为: public static void main(String[] args)解释一下运行结果出现的原因?
作者:
麦者
时间:
2013-11-8 18:10
String能跳过编译器?
作者:
寻丶丶觅
时间:
2013-11-8 18:19
我能说把主方法重写下就好了吗, 以前也遇到过,不知道哪里出问题
作者:
黄小贝
时间:
2013-11-8 18:35
我的猜测,编译器以为你运行的是JDK里面的String类,然后那里面没有main函数,你把你的类名换个试试
作者:
~﹏~
时间:
2013-11-8 20:30
你得看看ClassLoader是什么,怎么加载类的,
ClassLoader加载你这个String类的时候,会先在SystemClassLoader-->extensionClassLoader-->bootStrapClassLoader
中找这个类,然后会在bootStrapClassLoader中发现这个类的实例并返回
那个String中当然没有main方法。。。
作者:
Lucking
时间:
2013-11-8 20:55
java编译器默认找到是java自己的String类,她是final修饰的,所以对她什么都不能干,别说没有这个方法,就算有main方法也没法Overloading哦~
作者:
发哥-阿花
时间:
2013-11-8 21:03
String是java中的字符串类型。楼主对命名规则很不熟悉。首先你要注意不能使用java中关键字。
命名时,首字母大写,其他小写,多个单词时,首字母均大写。例如StringDemo;类是代表对象的,命名时尽量使用名词。
不对请指正,不全望补充。
作者:
红茶2331
时间:
2013-11-8 21:08
个人感觉是你的包名写错了,
String属于关键字,不能用于包名,编译就出错了{:soso_e147:}
作者:
红茶2331
时间:
2013-11-8 21:11
失误,应该是类名
在java中保留关键字是被java本身定义使用的字母组合,具有特殊意义,所以不能用作变量名、方法名以及类名。Java共有51个关键字,
java是以C++为基础的。C++以C为基础的,很多基本的都是相同的,不可以做类名,包名是可以的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2