看了很多关于package的描述,说package是为了避免名字冲突而设计的,相当于C++里面的namespace,但是我有两个问题:
1。是不是在文件头声明了package后,编译器会自动的把文件放如声明的包中,例如:package people,是不是编译以后我的这个类就自动进入了people 这个目录。
2。既然我们可以通过包(即目录)来避免名字空间,那我们可以这样操作吗?就是手动的把我写好的类放到一个目录下,而不用package 声明,这个效果和用package 后放入目录的效果是不是一样的呢?
谢谢大家的回答!!!

解决方案 »

  1.   

    我只提示一点,你的文件假设为Example.java,比如加了package com.companyname;在运行的时候要这样的(命令行当前目录为com的parent path): java com.companyname.Example;
      

  2.   

    1.是可以的,这个很JAVA的编译机制有关系。
    2。java不可以,但是你可以用一些极端的办法。比如,监视那个目录,发现有文件进来,立刻反编译。然后修改编译出来的Java文件。添加类路径。再编译。不过,假如你只是放入java文件,那就好多了。赫赫。