JAVA中关于包的问题

2025-02-27 06:13:00
推荐回答(3个)
回答1:

1. 一个文件只能有一个public类,两个public类只好放在两个文件里,每个都要写package test.card; .
//*********************************************
2. package test.card是指将该文件中的类打包到test包中的子包card中,从文件夹的观点看就是生成一个文件夹card放在文件夹test中(注意文件夹不全等于包).
//*********************************************
3. 编译应该这样编译 javac X1.java X2.java -d 相对/绝对路径
eg:
javac X1.java X2.java -d ./
当前目录下就会建立test文件夹,打开该文件夹会发现card文件夹,card文件夹里是编译好的类.
PS:要运行包中某个类要 java 包名.包名.类名
//*********************************************
4. 如果import了自己写的类要设置classpath
如果你用的是windows系统,可以在cmd中输入 set classpath=包1存放位置;包2存放位置;...;包n存放位置 (每次开启cmd后都要设,运行时也要设)
或 右击 我的电脑->属性->高级->环境变量->新建(系统变量)->变量名 classpath 变量值 包1存放位置;包2存放位置;...;包n存放位置

回答2:

你根本没有理解包!
1、包就是文件夹,只不过编译以后的文件存储的文件夹。
2、如果你使用了package card,那么也就是说相对于你的运行目录,这个包中的文件都在card目录下面。
3、import导入包也是相对路径,就是原来的package card,如果有别的地方需要导入,请使用classpath 和 -cp参数。

回答3:

1.
package card; //创建包
public class A
{
}

package card; //创建包
public class A
{
}
....
A,B类都属于包card

2. 不能.包就相当于路径. 其实你编译后在就在你的当前目录下建立一个card文件夹来存放类A,B

3. test类放在那里都行。使用类A
时就是
import card.*
或 import card.A;

编译后是编成.class文件