我用eclipse创建了两个类,一个在ch12包中,另一个在ch12 的子包sub中。ch12中的类要用sub中的类创建对象。但是我并没有引入这个包,为什么可以运行阿?它是如何找到这个类的?
代码如下:
///////////////
package ch12.sub;
import java.io.*;
public class Alien implements Serializable{}
////////////////////
package ch12;
import java.io.*;public class FreezeAlien { /**
 * @param args
 */
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub ObjectOutput out=new ObjectOutputStream(new FileOutputStream("X.file"));
Alien zorcon=new Alien();
out.writeObject(zorcon);
}}

解决方案 »

  1.   

    因为是public的,所以对所有的包内其它类是可见的吧,你的两个文件都在同一个包下,所以可以
      

  2.   

    ch12和ch12.sub怎么会是同一个包呢?而且我把它们分别放在包a和包b中也是可以的?
      

  3.   

    我在classes下面有三个包:
    form.LoginForm.class
    actiom / Login.java
    object.DbUtil.class我在编译Login.java的时候调用了其它两个包,出现了下面的问题
    小弟新学,望高手指点
    C:\Tomcat 5.0\webapps\strutsweb\WEB-INF\classes\action>javac Login.java
    Login.java:12: package form does not exist
    import form.LoginForm;
                ^
    Login.java:15: package object does not exist
    import object.DbUtil;
                  ^
    Login.java:25: cannot resolve symbol
    symbol  : class LoginForm
    location: class action.Login
            LoginForm LoginForm=(LoginForm)form;
            ^
    Login.java:25: cannot resolve symbol
    symbol  : class LoginForm
    location: class action.Login
            LoginForm LoginForm=(LoginForm)form;
                                 ^
    Login.java:31: cannot resolve symbol
    symbol  : variable DbUtil
    location: class action.Login
            Connection conn=DbUtil.connectToDb();
                            ^
    Login.java:52: cannot resolve symbol
    symbol  : method findForword (java.lang.String)
    location: class org.apache.struts.action.ActionMapping
            return mapping.findForword("faile");
                          ^
    6 errors
      

  4.   

    都是在ch12下,sub是它的子包,当然可以查找到了。
      

  5.   

    这个工作肯定是eclipse完成的,同一目录下的包可以自动寻找,不信你直接用jdk试试。