如何在Java中创建包目录

时间:2014-04-03 12:57:45

标签: java packages

我是Java的新手,我无法直截了当。我有E:\ Java \ ACP \ Cricket \目录,其中有一个Main.java,Player.java和CricPlayer.java。现在我将Player类继承到CricPlayer。 我有Main.Java为

import Java.ACP.Cricket.*;
public class Main
{
    public static void main(String[] args)
    {
        System.out.println("Hello.");
    }
}

CricPlayer.java As ...

import Java.ACP.Cricket
public class CricPlayer extends Player
{
}

我需要在Main.java中使用CricPlayer的对象。正如我之前提到的,我是Java的新手,所以可能会有一些我不知道的明显错误。但问题是我如何创建一个在CricPlayer.java和Main.java中使用的包?因为每次我使用CMD编译代码时都会显示“CricPlayer.java:6:error';'期望导入java.ACP.Cricket。*“并指向^到*。我不知道我是否没有正确创建包,或者它是否是一些语法问题。

6 个答案:

答案 0 :(得分:0)

在下面的课程中你骂写一个包(文件所在的项目中的文件夹) 例如 打包ACP.Cricket;

答案 1 :(得分:0)

您在CricPlayer类中忘记了导入的;

import Java.ACP.Cricket.*;

现在您应该能够在主类中创建CricPlayer对象。

答案 2 :(得分:0)

此外,我不知道您的包名中的“Java”是否应该大写。似乎编译器期望从命名约定中使用小写“J”

答案 3 :(得分:0)

您需要在代码文件的开头添加包声明。如果所有类都驻留在同一个包中,则不需要导入。 BTW,java中的良好编码约定建议包名中的所有字母都是小写的:)

package Java.ACP.Cricket;
public class Main
{
// Your class contents
}

答案 4 :(得分:0)

Vincenzzochi是对的,包是小写的(但它不应该破坏编译)。 并且您需要在所有类的开头声明包: 包java.acp.cricket;

虽然您的所有源文件都在同一个包中,但您不必导入任何内容!

答案 5 :(得分:0)

这是您的程序的替代方案。我已经自己验证了这一点,因此您可以放心,它会起作用。

您需要知道的重要事项是,只有当您拥有该文件的主方法时(即在该类中),才能编译任何文件。所以这里有一个详细的'如何做到':

PlayerDemo.java:

package Java.ACP.Cricket;
class Player{
//class members & methods
}
class PlayerDemo{
    public static void main(String[] args){
        System.out.println("Player Class");
    }
}   

CricPlayerDemo.java:

package Java.ACP.Cricket;
class CricPlayer extends Player{
// class members & methods
}
class CricPlayerDemo{
    public static void main(String[] args){
    System.out.println("CricPlayer Class");
    }
}   

Main.java:

package Java.ACP.Cricket;
class Main{
    public static void main(String[] args){
    System.out.println("Main Class");
//use other class objects here directly.
    }
}   

在E:中,按步骤进行操作:

1> javac PlayerDemo.java (this creates Player.class & PlayerDemo.class)
2> copy Player.class to Cricket folder.
3> javac CricPlayerDemo.java (this creates CricPlayer.class & CricPlayerDemo.class)
4> copy CricPlayer.class to Cricket folder.
5> javac Main.java 
6> copy Main.class to Cricket folder.
7> now,also in E:, java Java/ACP/Cricket/Main 

不是从E:编译,你也可以从Cricket编译,以避免复制类文件,但它不适用于CricPlayerDemo.java,因为CricPlayer扩展了Player(其位置适用于包)所以你可以必须从E编译CricPlayerDemo: