黑马程序员技术交流社区

标题: 关于String问题 [打印本页]

作者: 李震 李震 李震    时间: 2012-3-26 09:11
标题: 关于String问题
能不能自己写个类,也叫java.lang.String?
作者: 黄奇耀    时间: 2012-3-26 09:16
package java.lang;

public class String {
  public static void main(String[] args) {
  System.out.println("能自己写个类,也叫java.lang.String");
}
}
运行时会报错:java.lang.NoSuchMethodError:main
                     Exception in thread "main"
运行时会报错说没有main这个方法。
首先在java.lang.string这个类中是没有main这个方法的,所以可以知道jvm首先会调用系统类库中的类,自己定义的String类就没有用了。
作者: 肖发腾    时间: 2012-3-26 10:54
不可以,如果类名相同但是包名不相同是可以的,但是不能类名和包名都相同。比如可以写个类叫:com.lang.String。
其次,类加载器可以向上委托,自己写得类加载器是最底层的,java.lang.string是在最上层,这里的问题还需要解决
作者: 袁野    时间: 2012-3-26 11:16
不可以,因为在用一个包下不可以有相同的类名
作者: 李井山    时间: 2012-3-26 12:12
写是可以写,但这个类不会被类加载器加载到,也就是运行不了,因为加载类时会先调用父类的加载器,而我们已经有这个类了,所以我们的类没机会运行到




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