A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 崔维友 于 2012-11-17 19:35 编辑

C盘下有个带主函数的Test文件、External文件、internal文件夹。internal中有个Internal文件。

我想在Internal中调用External,然后再Test中调用Internal,如何写代码?


下面是我现在写的代码:
Test.java
  1. import internal.Internal;        //导入和本类同级目录下的类

  2. class Test
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 System.out.println("Test调用内部类Int");
  7.                 Internal i=new Internal();
  8.                 i.show();
  9.         }
  10. }
复制代码
External.java
  1. public class External
  2. {
  3.         public void show()
  4.         {
  5.                 System.out.println("这是外部Ext,被内部Int的调用");
  6.         }
  7. }
复制代码
Internal.java
  1. package internal;        //需要指定所在包,才能被和此包同级的类访问到
  2. import External;        //这里该如何导入上一级目录中的External?

  3. public class Internal
  4. {
  5.         public void show()
  6.         {
  7.                 System.out.println("内部Int,调用外部Ext");
  8.                 External e=new External();
  9.                 e.show();
  10.         }
  11. }
复制代码
我直接在命令提示符下编译Test.java报错:

先编译External.java,再编译Test.java同样报错:


----------------------------------------------------------------

请问应该怎么在Internal中访问上一级目录中的External呢?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
本帖最后由 刘菲 于 2012-11-17 18:55 编辑

你好  你那个问题我运行了  发现几点问题
1.External是一个单独的类使用时不需要导入   一般导入的都是在包内的class文件
你只需要在运行internal时用set classpath设置一下寻找路径就可以找到编译好的   External.class就不会报错了            
2.因为你直接把Internal类存入了internal文件中所以不需要再用package来指定包,你把那句话注释掉再设置好路径就可以了   
3.在Test类中,以为你的internal类是直接存于文件中的  我不清楚文件与包到底有什么区别  但是我觉得既然他不是包也没必要导入  
导入会报错   你把那句话也注释掉   
4.总之,你只要设置好寻找路径就可以解决问题,不必在这个问题上太过于纠结

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 崔维友 于 2012-11-17 19:35 编辑

非常感谢刘菲一晚上耐心的讲解!按照如下步骤终于编译运行通过:
1.将Test.java中第一行导入语句注释,
2.将Internal.java中第一行和第二行的包语句、导入语句注释,
3.编译External.java文件,
4.编译Internal.java文件,
5.设置classpath为Internal.class所在目录,
6.编译Test.java文件,
7.运行Test。

-------------
至此本帖算是结了吧。感谢刘菲,感谢各位评分的老师!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马