初级问题,使用接口时出现错误“找不到符号”,在线等,急!
刚开始学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下,这样可以不需要引用,否则在实现的时候需要引用接口文件