簡體   English   中英

編寫一個Java類以在另一個Java類中使用

[英]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.javaClass2.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM