读书人

关于在同一个package上一个java文件

发布时间: 2013-03-13 10:56:58 作者: rapoo

关于在同一个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
[解决办法]

引用:
引用:请楼主在-d后面留个空格+圆点+空格+*.java

确实如此,基本解决问题了,白天在上课,刚研究了下大家的建议,总结如下:
首先我是用的notepad++编的java文件
目录如下:
d:\java\Circle2.java TestCircle2.java (虽然都定义为package p1;貌似没必要新建文……

能行了,是》
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;

明白否??

读书人网 >J2SE开发

热点推荐