我如何在java中使用来自不同文件的类?

时间:2011-04-21 15:46:37

标签: java

Java新手,这就是我想要做的事情;

我在Windows机器上的这个文件夹中有两个文件;

d:\programs\sims\javasim\src\com\jsim\
Person.java
Building.java

在我的Building.java上使用位于Person.java文件中的类Person。

package com.jsim;
ArrayList<Person> personList = new ArrayList<Person>();

正在编译此文件夹中的文件

d:\programs\sims\javasim\src

但是当我尝试编译Building.Java时,编译器会告诉我

d:\programs\sims\src\javac com/jsim/Building.java

com\jsim\Building.java:10: cannot find symbol
symbol  : class Person
location: class com.jsim.Building
        private ArrayList<Person>personList = new ArrayList<Person>();
                          ^

如何让Building.java了解文件Person.java中的类Person?

加特

5 个答案:

答案 0 :(得分:3)

您需要让您的包名称和导入保持一致。您发布的信息包含两个不同的包名称,因此您需要将类放在同一个包中或添加import语句。

答案 1 :(得分:0)

您必须导入您引用的类:

import Person;

答案 2 :(得分:0)

我认为问题的确如此:

private ArrayList<Person>personList = new ArrayList<com.liftsim.Person>();

由于您正在编写的类与其他类(com.jsim)位于同一个包中,因此您无需导入任何内容。但是,您在初始化中指定了一个完全不同的类名(我猜是使用Eclipse自动完成?) - 所以只需删除所有导入并重写上面的行,如下所示:

private ArrayList<Person>personList = new ArrayList<Person>();

答案 3 :(得分:0)

我发现当我使用Eclipse时,我不能在同一个包中的其他文件中使用-non-public- classes。请注意,当发生这种情况时,我正在使用默认包。当我打开两个文件并在编辑器中打开两个窗口时,此行为会更改。在这种情况下,我可以在其他文件中使用类。

答案 4 :(得分:0)

执行javac *.javajavac Person.java Building.javajavac Building.java Person.java来编译您的课程。

似乎在编译Building.java文件之前没有编译Person.java。

构建需要Person的类文件来编译而不是.java文件。