编写一个Java类以在另一个Java类中使用

时间:2011-10-26 04:19:31

标签: java object

我是一个Java菜鸟。

这是我正在尝试做的事情:

//File 1
public class Class1
{
   //....does some stuff
}

//File 2
public class Class2
{
   //..also does some stuff including:
   Class1 c = new Class1(); 
}

文件1和文件2位于同一目录中。

要编译,我正在使用命令:

javac Class2.java

这给了我错误的表格:

Error: Cannot find symbol Class1

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:0)

假设它们位于同一文件夹中,您不必导入,如果不是,则需要指定import java.util.Scanner;这样的包。在Java中,您没有带扩展名的后缀。

你在用什么编写代码?

答案 1 :(得分:0)

要在一个文件中使用多个类,请查看此tutorial

如果您正在用两个不同的文件编写类,并且它们位于同一个包中,则不需要导入它们以便使用它们。但是如果您手动编译它们(使用命令提示符),请确保已编译所有.java文件。否则你会收到错误。

如果您使用不同的包编写它们,请确保这些类是公开的以便使用它们。是的,在这种情况下,您必须导入包含您要使用的类的包。如果使用命令promt,请再次确保编译所有类。

我的建议是使用一个好的IDE(有很多:)来完成你的代码,因为它们比我们更多地帮助你:)

答案 2 :(得分:0)

如果两个文件Class1.javaClass2.java位于同一目录中(并假设您已声明要使用的类),则根本不需要进行任何导入使用另一个; Java会自动找到另一个类。

所以在Class2.java你可以做到:

public class Class2 {
    void someMethod() {
        Class1 c = new Class1();
    }
}

答案 3 :(得分:0)

在基类上,

package ABC;

public class PQR {

// Do stuff

}


import ABC.*;

class XYZ {
 // Use the PQR class method
}

答案 4 :(得分:0)

我不确定我是否理解这个问题 - 您是在尝试使用内部类(在另一个类定义中使用一个类定义)还是这些类是独立且独立的?需要导入来定义您可以访问的包/类,默认情况下,同一包中的包可用。因此,如果这些包在同一个包中,您实际上并不需要任何导入。此外,这两个类需要彼此可见。当你说它不起作用时,你会得到什么错误?

使用内部类的一种方法是outer.new Class1()(其中outer是封装Class1的类的对象)。如果这些不是内部类,则它们需要位于单独的.java文件中。

顺便说一句,建议明确提供访问修饰符(公共,私有,受保护)。

包含错误消息的完整代码列表将帮助我提供更好的答案......