关于在同一个package下,一个java文件定义类,另一个java文件怎样用这个类
Circle2.java:
package p1;
public class Circle2{
double radius;
Circle2(){
radius = 1.0;
}
}
然后再另一个文件TestCircle2.java中调用
package p1;
public class TestCircle2{
public static void main(String[] args){
Circle2 circle1=new Circle2();
System.out.println("The area of the circle of radius"+circle1.radius+" is "+circle1.getArea());
}
->javac Circle2.java
->javac TestCircle2.java 时显示找不到符号Circle2,这是什么原因了?
[解决办法]
假设你的目录结构是
src
-- p1
-- Circle2.java
-- TestCircle2.java
cmd到src下
D:\Test\src>javac -d .\ p1\Circle2.java
D:\Test\src>javac -d .\ p1\TestCircle2.java
D:\Test\src>java p1.TestCircle2
The area of the circle of radius1.0 is 1.0
[解决办法]
请楼主在-d后面留个空格+圆点+空格+*.java
[解决办法]
能行了,是》
p1是.java文件生成的字的包名,相于C++里的命名空,包名+名才是一的完整名字!
要想在其它包中使用Circle2和TestCircle2就必加包名,一般是使用import p1.XXX;之的。
然,在p1包部就入p1包了!
行p1.TestCircle2就是字的全名,所有必要p1;
Circle2.class 和TestCircle2.class都在D:\p1里面,因javac -d . 指定了包的生成路:在前目下,前目就是d:\。-d后就是指明包的生成路的,你可以指定到c即javac -d C:\ XXX.java
如果要想.class文件.java文件在同一目里,那目路就必包名,比如java置包名而非p1: package java;
明白否??