日期:2014-05-18  浏览次数:20891 次

初级问题,使用接口时出现错误“找不到符号”,在线等,急!
刚开始学JAVA,使用接口时出现问题,源程序如下:
//Particle.java文件
package   com.wrox.physics;
interface   Particle
{
long   getMass();
void   setMass(long   m);
}
//Wave.java文件
package   com.wrox.physics;
interface   Wave
{
long   getWavelength();
void   setWavelength(long   w);
}
//Light.java文件
package   com.wrox.physics;
public   class   Light   implements   Particle,   Wave
{
private   long   mass;
private   long   wavelength;

public   long   getMass()
{
return   mass;
}
public   void   setMass(long   m)
{
this.mass   =   m;
}
public   long   getWavelength()
{
return   wavelength;
}
public   void   setWavelength(long   w)
{
this.wavelength   =   w;
}
public   Light()
{
this.mass   =   1;
this.wavelength   =   10;
}
}
三个文件都放在...\com\wrox\physics文件夹下,编程前两个接口的文件时没问题,后一个编译时有问题,说找不到符号(类Particle和类Wave)
在线等,多谢!

------解决方案--------------------
3个一起编译
javac *.java

或者用个IDE吧,JCreator对初学者有用
------解决方案--------------------
用个ide比较容易定位问题,推荐使用esclipse
------解决方案--------------------
你的三个文件都定义了包(package),如果没有引用其它类是没有什么问题的,如果引用了其它类,编译器就会在CLASSPATH中去寻找相应的包,并在包中寻找引用到的类。

所以你这三个文件应该都是放在包定义的目录下,即
com/wrox/physics
然后,在com目录的上层目录编译
javac -cp . com/wrox/physics/*.java

或者你可以把com的父目录设置在CLASSPATH中,然后再编译(这个时候应该在哪里编译都可以)

------解决方案--------------------
楼上的正解,一定要根据包的路径编译
编译的时候两个接口类文件必须在com/wrox/physics下
------解决方案--------------------
3个文件都放在com/wrox/physics下,这样可以不需要引用,否则在实现的时候需要引用接口文件