1.$$
package com.bruceeckel.simple;public class Vector
{ public Vector()
{ System.out.println("com.bruceeckel.simple");
}
public static void main(String[] args)
{System.out.println("Hello !");
}
}
2.$$
package com.bruceeckel.simple;public class List{
public List()
{System.out.println("com.bruceeckel.simple.List"); }
public static void main(String[] args)
{System.out.println("Hello !");
}
}
3.$$
import com.bruceeckel.simple.*;public class Test
{ public static void main(String[] args)
{ //com.bruceeckel.simple.Vector v=new com.bruceeckel.simple.Vector();
//com.bruceeckel.simple.List l=new com.bruceeckel.simple.List();
Vector v=new Vector();
List l=new List();
}
}classpath: .;C:\j2sdk1.4.2_03\lib
问题:为什么 3$$ 代码必须替换成注释掉的那一段才可以运行?
难道我的import 失效了吗?
package com.bruceeckel.simple;public class Vector
{ public Vector()
{ System.out.println("com.bruceeckel.simple");
}
public static void main(String[] args)
{System.out.println("Hello !");
}
}
2.$$
package com.bruceeckel.simple;public class List{
public List()
{System.out.println("com.bruceeckel.simple.List"); }
public static void main(String[] args)
{System.out.println("Hello !");
}
}
3.$$
import com.bruceeckel.simple.*;public class Test
{ public static void main(String[] args)
{ //com.bruceeckel.simple.Vector v=new com.bruceeckel.simple.Vector();
//com.bruceeckel.simple.List l=new com.bruceeckel.simple.List();
Vector v=new Vector();
List l=new List();
}
}classpath: .;C:\j2sdk1.4.2_03\lib
问题:为什么 3$$ 代码必须替换成注释掉的那一段才可以运行?
难道我的import 失效了吗?
指明是com.bruceeckel.simple还是java.util的
java.util.*, java.awt.* , com.bruceeckel.simple.*;都有List,如果不指明,
程序不知道用哪一个哦
没有 : import java.util.*;
这样也会出现冲突的吗?
书上的程序你可以改一下的啊,比如说
public class Vector ========你可以改成public class myVector
public class List ========你改成public class myList
然后就可以用你自己的myVector v=new myVector(); myList l=new myList();
状况:在%classpath%\下编译Vector.java,List.java, 得到的.class文件复制到\com\bruceeckel\simple\下;再编译Test.java出错。
分析: 编译的时候是先在当前目录里找,再看classpath得,可能是当前目录有了将要调用的文件所以报错
处理: 移动当前目录的相关文件至\com\bruceeckel\simple\ (包括.java文件),编译通过,问题解决。其实问题的答案在错误提示里有,我没仔细想,多谢各位,感谢用qq指点的兄弟,结了。
java在启动后都是先通过classpath找到java的基础类
也就是通过classpath找到vector和list的
完整的类名称是java.util.vector 和 java.util.list在程序里你自己声明com.bruceeckel.simple.Vector v=new com.bruceeckel.simple.Vector();
是可以的,程序调用你声明的vector
但是不声明,程序就调用java.util.vector接分