请教一个问题,关于main方法的问题 类main 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你确定不是因为你把类名弄成了String的缘故么。这个貌似编译都通不过啊 主要是你的类和java.lang包中String类一样,你想new 你自己的String,而实际上new的是java自己封装好的类,而那个类确实没主函数的 我刚调试了下,觉得还有个可能.应该是public static void main(String[] args) 中的String问题这里的String是你自己的String而不是java自己的String,所以这个不符合主函数的要求.....应该是这个解释更合理......不过这是我的理解 public class String{public static void main(java.lang.String[] args) {}}这样是可以通过编译和运行的。因为你自己定义了String类,所以main中的String也就成了你自己的类型,不符合main方法的规范,加上全限定名即可 类名用了java中的关键字String,这样在后面程序中你要用到的String到底是你自己写的还是java中的String类?你要写清楚,java中有规定主方法必须为public static void main(String[] args){ }除了args可以该,其他不能改!括号中的String指的就是java.lang.String,你要申明!否则就是你自己定义的String了。还有你有定义String str,这个str是字符串类型吗?不是的,是你的类String类型的,而你的构造方法里面传的和下面new的都是字符串,根本就不相符。哪里是要字符串类型申明下就好了:public class String{ java.lang.String str; public String(java.lang.String str){ this.str = str; } public static void main(String[] args) { // TODO Auto-generated method stub String str = new String("hello"); System.out.println(str); }} http://blog.csdn.net/a617717/article/details/39980181http://blog.csdn.net/a617717/article/details/39980409http://blog.csdn.net/a617717/article/details/39980799http://blog.csdn.net/a617717/article/details/39980777http://blog.csdn.net/a617717/article/details/39980731http://blog.csdn.net/a617717/article/details/39980813http://blog.csdn.net/a617717/article/details/39980707http://blog.csdn.net/a617717/article/details/39980685http://blog.csdn.net/a617717/article/details/39980661http://blog.csdn.net/a617717/article/details/39980757http://blog.csdn.net/a617717/article/details/39980639http://blog.csdn.net/a617717/article/details/39980619http://blog.csdn.net/a617717/article/details/39980607http://blog.csdn.net/a617717/article/details/39980409http://blog.csdn.net/a617717/article/details/39980559http://blog.csdn.net/a617717/article/details/39980181 public class String{ java.lang.String str; public String(java.lang.String str){ this.str = str; System.out.println(str); } public static void main(java.lang.String[] args) { // TODO Auto-generated method stub String str = new String("hello"); System.out.println(str.str); }}以上代码能够正常运行。你最下面new的str可不是字符串哦,其实是你的String类的对象,在你new对象的时候给构造方法穿了一个字符串“hello”,所以,你要输出的str结果是对象的地址,而你应该输出的是str.str,这个结果才是你以为的系统会给你new出来的字符串“hello”。明白了吗? 完整的应该这么写public class String { public String(java.lang.String str) { super(); this.s =str; } public java.lang.String s; public java.lang.String toString(){ return "this"+" "+s; } public static void main(java.lang.String args[]){ String str=new String("hello world"); System.out.println(str); }} classLoader首先会去加载java.lang.String,而不是你写的java.lang.String package topics_390903109;public class String { java.lang.String str; public String(java.lang.String str) { this.str = str; } public static void main(java.lang.String[] args) { String str = new String("hello"); System.out.println(str); }}稍微改动一下,能够运行了……topics_390903109.String@15ff48b 你应该了解一下jvm了 JVM 为了安全问题 当出现和java api 核心类同名类时 会只装载java api 的核心类 而不装载你声明的类 而java.lang.String类 的确没有 main()方法 所以。。 唯9楼和11楼是正解。Java总是先加载rt.jar下的核心类,然后再加载本地类,接着才是其它类,且当一个类被加载后就不会再加载拥有相同限定名的类。所以你的执行过程变成了javac lang包下的String.class,而String.class没有main()方法,当然就报找不到main()方法。 是类名的问题,不能定义为String,String是java中的数据类型。 问一个正则表达式的问题 如何使用sql2000存储jtree? 高分求高效大量输出文件的例子,nio异步输出的例子好像都是socket的 问一个有关在APPLET上输入文字的问题 两个处理时间的问题???~~~~~~请指教! 求救!! 我应该怎么刷新一个jpanel呢? 请教一道SCJP的模拟题? 关于javamail的问题,清高首解答 请问哪里有JBuilder的书? 怎样用Arrays.sort()函数排序一个类对象数组。 关于Java的返回值问题:太奇怪了!!!
这个貌似编译都通不过啊
应该是这个解释更合理......不过这是我的理解
public static void main(java.lang.String[] args) {}
}
这样是可以通过编译和运行的。因为你自己定义了String类,所以main中的String也就成了你自己的类型,不符合main方法的规范,加上全限定名即可
}
除了args可以该,其他不能改!括号中的String指的就是java.lang.String,你要申明!否则就是你自己定义的String了。
还有你有定义String str,这个str是字符串类型吗?不是的,是你的类String类型的,而你的构造方法里面传的和下面new的都是字符串,根本就不相符。哪里是要字符串类型申明下就好了:
public class String{
java.lang.String str;
public String(java.lang.String str){
this.str = str;
} public static void main(String[] args) {
// TODO Auto-generated method stub String str = new String("hello");
System.out.println(str);
}
}
http://blog.csdn.net/a617717/article/details/39980409
http://blog.csdn.net/a617717/article/details/39980799
http://blog.csdn.net/a617717/article/details/39980777
http://blog.csdn.net/a617717/article/details/39980731
http://blog.csdn.net/a617717/article/details/39980813
http://blog.csdn.net/a617717/article/details/39980707
http://blog.csdn.net/a617717/article/details/39980685
http://blog.csdn.net/a617717/article/details/39980661
http://blog.csdn.net/a617717/article/details/39980757
http://blog.csdn.net/a617717/article/details/39980639
http://blog.csdn.net/a617717/article/details/39980619
http://blog.csdn.net/a617717/article/details/39980607
http://blog.csdn.net/a617717/article/details/39980409
http://blog.csdn.net/a617717/article/details/39980559
http://blog.csdn.net/a617717/article/details/39980181
java.lang.String str;
public String(java.lang.String str){
this.str = str;
System.out.println(str);
} public static void main(java.lang.String[] args) {
// TODO Auto-generated method stub String str = new String("hello");
System.out.println(str.str);
}
}以上代码能够正常运行。你最下面new的str可不是字符串哦,其实是你的String类的对象,在你new对象的时候给构造方法穿了一个字符串“hello”,所以,你要输出的str结果是对象的地址,而你应该输出的是str.str,这个结果才是你以为的系统会给你new出来的字符串“hello”。明白了吗?
public class String {
public String(java.lang.String str) {
super();
this.s =str;
}
public java.lang.String s;
public java.lang.String toString(){
return "this"+" "+s;
} public static void main(java.lang.String args[]){
String str=new String("hello world");
System.out.println(str);
}
}
this.str = str; } public static void main(java.lang.String[] args) { String str = new String("hello");
System.out.println(str);
}
}稍微改动一下,能够运行了……topics_390903109.String@15ff48b
java.lang.String类 的确没有 main()方法 所以。。
Java总是先加载rt.jar下的核心类,然后再加载本地类,接着才是其它类,且当一个类被加载后就不会再加载拥有相同限定名的类。
所以你的执行过程变成了javac lang包下的String.class,而String.class没有main()方法,当然就报找不到main()方法。