当前位置: 首页 > 知识库问答 >
问题:

为什么同一个包的一个类不能访问另一个?

况明贤
2023-03-14
package MyPack;
class Balance
{
    String name;
    protected double bal;
    Balance(String n, double b)
    {
        name=n;
        bal=b;
    }
    void show()
    {
        if(bal<0)
        System.out.print("--> ");
        System.out.println(name+": $" +bal);
    }
}

类别:账户余额

package MyPack;
class AccountBalance
{
    public static void main(String[] args)
    {
        Balance current[]=new Balance[3];
        current[0]=new Balance("K. J. Fielding", 123.23);
        current[1]=new Balance("will Tell", 157.02);
        current[2]=new Balance("Tom Jackson", -12.33);
        for(int i=0; i<3; i++) current[i].show();
    }
}

我已经把这两个类都放在Balance.java和Account tBalance.java.这两个文件都在E:/程序/MyPack. Balance.java编译没有错误但是当我编译Account tBalance.java它给出错误:找不到符号"平衡".

我无法弄清楚为什么当两个类都在同一个包中声明时?

我正在使用javac B从MyPack编译alance.javajavac Account tBalance.java

共有2个答案

黎鹤轩
2023-03-14

假设您使用javac,原因是您一个接一个地编译它们(先是Balance然后是AccountBalance),并且您不在MyPack的父文件夹中。如果你真的这么做了,那么请使用javac-cp选项来指出已经编译的余额。类。例如:

..\so\src\MyPack>javac Balance.java

..\so\src\MyPack>javac -cp ../. AccountBalance.java

或者同时计算它们,例如:

..\so\src\MyPack>javac *.java
李开宇
2023-03-14

假设您是从E:/programs以外的文件夹发出javac命令,则需要指定一个-cp选项,包括包含余额类的位置。

这是因为如果没有指定选项,javac将使用当前目录

如果既没有指定CLASSPATH-cp也没有指定-classpath,则用户类路径由当前目录组成。

例如,如果你这样做了,

E:/> javac programs/MyPack/AccountBalance.java 

然后,Balance类将不在类路径中,编译器将给出您看到的错误。

在这种情况下,您需要为类路径指定一个显式位置。例如

E:/> javac -cp programs programs/MyPack/AccountBalance.java 

由于Balance位于包MyPack中,它位于/E/程序的根,编译器找到它并可以使用它。

使用IDE。

 类似资料:
  • 任何一个帮助我的人,我都在调用package到另一个包的SimpleAccountRegistrationActivator类。Java语言小口喝通信器。插件。simpleaccreg,但它抛出以下异常。。。。。。 Java语言lang.NoClassDefFoundError:net/java/sip/communicator/impl/gui/main/account/NewAccountDi

  • 我是OOPs新手,如果这听起来很基本,我很抱歉。我有一个具有以下代码的类:- 现在假设我在同一个包中有另一个类“Main”。有什么方法我可以创建一个类的对象'内部'在'主'与类'外部'参考? 我尝试了以下操作(这是抛出错误):- “Main”和“Outer”类都在同一个包中。另外,我的主要目标是了解是否有任何方法可以在main方法中创建类Inner的对象,如下所示:-outerO1=newinne

  • 我是一名Java程序员初学者。我试图在类交通中访问类车中的两个列表,这样我就可以执行while循环,循环直到主类中的列表为空 这就是我现在掌握的代码,我试着从普通车上扩展流量,但没有成功,我被卡住了。我该怎么解决这个问题?

  • A类源代码: B类源代码: 当我编译B. java时没有错误,当我试图编译A. java时,我得到了: 顺便说一句,我不是用IDE来编译这个,我只是用Geany和nano编辑了文件,然后用javac从终端编译它们。

  • 问题内容: 我的意思是: 我用谷歌搜索,发现了这个: 表示定义接口方法的实现。但是接口没有实现,因此是不可能的。 但是,interface是100%抽象的类,抽象类可以实现接口(100%抽象的类)而无需实现其方法。将其定义为“接口”时会出现什么问题? 详细来说, 问题答案: 表示实现,当旨在声明仅提供不提供实现时。 A 100%,是功能上等同于,但它也可以实现,如果你想(在这种情况下,它不会保持1

  • 根据Android指南,http://developer.android.com/training/basics/fragments/communicating.html一个片段应该通过宿主Activity向另一个片段发送数据。我想知道这有什么原因。因为在我的代码中,我放置了一个变量来保存指向另一个片段的指针,并在onActivityCreated中赋值 后来,如果我想为FragmentType2