[英]Write a Java class to use in another Java class
我是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
我該如何解決?
假設它們在同一個文件夾中,則不必導入,如果不是,則需要指定類似import java.util.Scanner;
的包import java.util.Scanner;
。 在Java中,后綴不帶擴展名。
您正在用什么編寫代碼?
要在一個文件中使用多個類,請看一下本教程
如果要在兩個不同的文件中編寫類,並且它們在同一包中,則不需要導入它們即可使用它。 但是,如果要手動編譯它們(使用命令提示符),請確保已編譯了所有.java文件。 否則,您將獲得錯誤。
如果您使用其他程序包編寫它們,請確保這些類是公共的以便使用它們。 是的,在這種情況下,您必須導入包含您要使用的類的包containig。 如果使用命令promt,請再次確保所有類均已編譯。
我的建議是使用良好的IDE(很多:))來編寫代碼,因為它們比我們提供的幫助更多:)
如果兩個文件Class1.java
和Class2.java
位於同一目錄中(並且假設您已聲明要使用的類),則根本不需要進行任何導入即可使用另一個文件。 Java將自動找到另一個類。
因此,在Class2.java
您可以簡單地執行以下操作:
public class Class2 {
void someMethod() {
Class1 c = new Class1();
}
}
在基礎課上
package ABC;
public class PQR {
// Do stuff
}
import ABC.*;
class XYZ {
// Use the PQR class method
}
不確定我是否理解問題-您是要使用內部類(另一個類定義中的一個類定義)還是這些類是獨立的? 需要導入來定義您可以訪問的包/類,默認情況下,同一包中的包/類是可用的。 因此,如果這些文件在同一包中,則實際上不需要任何導入。 同樣,這兩個類都必須彼此可見。 當您說它不起作用時,您會遇到什么錯誤?
使用內部類的一種方法是例如external.new Class1()(其中,outer是封裝Class1的類的對象)。 如果這些不是內部類,則它們必須位於單獨的.java文件中。
順便說一句,始終建議您顯式提供訪問修飾符(公共,私有,受保護)。
完整的代碼清單和錯誤消息將幫助我給出更好的答案...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.