黑马程序员技术交流社区

标题: 包下类之间的执行在cmd和Eclipse下效果不同 [打印本页]

作者: careit    时间: 2014-9-11 17:31
标题: 包下类之间的执行在cmd和Eclipse下效果不同
DemoA
  1. package pack;
  2. /*
  3. * 包与包之间进行访问,被访问的包中的类以及类中的成员需要public修饰*/
  4. class DemoA {
  5.          void show(){
  6.                  System.out.println("show");
  7.          }
  8. }
复制代码


DemoB

  1. package pack;
  2. public class DemoB {
  3.         public static void main(String args[]) {
  4.                 DemoA a=new DemoA();
  5.                 a.show();
  6.         }
  7. }
复制代码



同样的代码为什么在Eclipse下可以,cmd下不行呢
同包下的类访问 可以不用 包名.类名全路径啊
之前一直这么开发,毁三观啊

2014-09-11_172458.png (44.52 KB, 下载次数: 2)

2014-09-11_172458.png

2014-09-11_172527.png (12.35 KB, 下载次数: 4)

2014-09-11_172527.png

2014-09-11_172734.png (166.2 KB, 下载次数: 2)

2014-09-11_172734.png

作者: fantacyleo    时间: 2014-9-11 17:44
昨天有人问过类似的问题。答案就是:这属于Java坑爹的一面。它在编译时不强制你的源文件和class文件在文件系统中的位置和源代码中写的package语句保持一致。但却在运行时按package指定的文件夹结构去搜索class文件。

当然,eclipse作为解放生产力的IDE,上述小case必须帮你搞定了,至于cmd,只能自己动手丰衣足食了
作者: careit    时间: 2014-9-11 18:03
懂了,分这么高了,还常来逛

2014-09-11_180256.png (57.4 KB, 下载次数: 2)

2014-09-11_180256.png





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