在c05 目录(假定在自己的CLASSPATH 里)创建下述文件: 
 
//: PackagedClass.java 
package c05; 
class PackagedClass { 
  public PackagedClass() { 
    System.out.println( 
      "Creating a packaged class"); 
  } 
} // 
 
然后在c05 之外的另一个目录里创建下述文件: 
 
//: Foreign.java 
package c05.foreign; 
import c05.*; 
public class Foreign { 
   public static void main (String[] args) { 
      PackagedClass pc = new PackagedClass(); 
   } 

解释编译器为什么会产生一个错误。将Foreign(外部)类作为c05 包的一部分改变了什么东西吗? 
谁能解释一下,这个错误是为什么呢。

解决方案 »

  1.   

    package c05.foreign;
    确定了一个包  : c05.foreing
    这个包(c05.foreing)在包c05中
    把A包外面声明一个A包的子包肯定出错
    否则API结构也可以混乱不堪了
      

  2.   


    +1我这里运行也没问题~~你的最后一个括号是中文的,应该是英文的!
    public class Foreign { 
      public static void main (String[] args) { 
      PackagedClass pc = new PackagedClass(); 
      } 
    }// 修改一下这个括号
      

  3.   

    所以说啊细心检查一下不要随便怀疑java本身
      

  4.   

    我知道运行这个程序没有问题,这个题目是think in java 4th ed  里面的,作者说这个会出现错误,问为什么,但是他并没有给出答案,我想不出来为什么会出错误。