我有两个类Rectangle和Point,封到包graphic.twoD里了,
但是主程序调用前用
import graphic.twoD.*;
编译时出错,在调用包中的Rectangle类和Point类的那条语句前提示不能解析符号;要是改成单独的
import graphics.twoD.Rectangle;
import graphics.twoD.Point;
这就行,
为什么?原代码
这是书上一个练习题,功能是求矩形的面积
package graphics.twoD;
public class Rectangle {
public int width=0;
public int height=0;
public Point origin;

public Rectangle(Point p,int w,int h){
origin=p;
width=w;
height=h;
}
//移动矩形的方法
         public void move(int x,int y){
origin.x=x;
origin.y=y;
}
         //计算矩形面积
public int area(){
return width*height;
}
}
package graphics.twoD;
public class Point {
public int x;
public int y;
public Point(int x,int y){
this.x=x;
    this.y=y;
}    
   
}import graphics.twoD.*;//就是这句,这样写就出问题
public class TestPackage {

public static void main(String[] args) {
Point p=new Point(2,3);
Rectangle r=new Rectangle(p,10,10);
System.out.println("The area of the rectangle is"+r.area());
}
}

解决方案 »

  1.   

    以前用jbulider的时候遇到过这个问题
    好像是将.java文件也按照包的层次放置就好了
    对程序的执行应该没什么影响。
      

  2.   

    你把这两个程序中的任何一个类前的public去掉就好了!
    因为打包之后的文件里的文件只能有一个是public!
      

  3.   

    怎么能是把主程序放到一个包里??我这是主程序调用包里的类啊,前面有import就行的啊。
    To zxyyg 我试过,把public去掉,还是一样,没有解决啊。
    To PhoticX怎样放置??我用的是JCreator,都是按默认的地方放置的,倒是改成
               import graphics.twoD.Rectangle;
               import graphics.twoD.Point;
              这样是对的,就是感觉不爽,书上不是写着用*号可以代替所有类吗?
      

  4.   

    用JAR打个包,主要是路径要设置好,如果你的源文件与包文件放在同一个文件夹下,同时又在JC里面加入JAR包,可能就会出现这种情况
      

  5.   

    如果你包文件放在JDK下,又放在JC默认的目录下,有时候也会发生这种情况,包文件最好有JAR打个JAR包,只用一个免得莫明其妙的冲突
      

  6.   

    我用jc试了也有同样的问题,不过TestPackage打包在graphics包的任何位置import graphics.twoD.*;这句都会通过.在graphics外就不行。原因不明。
    请高手解释。
    to tian_s 文件只在jc默认目录下,问题也存在。
      

  7.   

    To tian_s 讲具体一点的解决方案,我没有用过JAR,
              我是初学。解决了定会给你分