我是一位經驗豐富的C開發人員,我想知道與Java中的頭文件等效的內容。我有一個枚舉,我想在兩個類之間共享,但沒有頭文件,我不知道如何做到這一點。C頭文件的Java等價物 - 如何在類之間共享定義
標準方法是擁有一個超類,並在裏面定義一個定義,然後讓其他兩個類繼承它?谷歌提到的接口,但我沒有任何經驗。
我是一位經驗豐富的C開發人員,我想知道與Java中的頭文件等效的內容。我有一個枚舉,我想在兩個類之間共享,但沒有頭文件,我不知道如何做到這一點。C頭文件的Java等價物 - 如何在類之間共享定義
標準方法是擁有一個超類,並在裏面定義一個定義,然後讓其他兩個類繼承它?谷歌提到的接口,但我沒有任何經驗。
這取決於你想完成的封裝級別。在同一封裝與兩類
我更喜歡第一種方法,我認爲它是最乾淨的,它也遵循OOP bes實踐。
至於界面,他們曾經在枚舉之前使用爲常量提供「容器」,但在我看來,目前他們不應該用於這種情況。
您應該瞭解Java中的包。
基礎:https://en.wikipedia.org/wiki/Java_package
訪問級別修飾符:https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
如果你有一個枚舉這是不私人的,它可以從包訪問。
一個具體的例子:
mypackage/MyEnum.java
(定義枚舉)
package mypackage;
public enum MyEnum {
VALUE_1, VALUE_2;
}
mypackage/MyClass.java
(使用ENUM)
package mypackage;
public class MyClass {
public void doSomething(MyEnum myEnum) {
switch(myEnum) {
case VALUE_1:
// do something
break;
case VALUE_2:
// do something
break;
}
}
}
otherpackage/OtherClass.java
(使用另一個包枚舉)
package otherpackage;
import mypackage.MyEnum; // explicitly import as MyEnum is not in the same package as this class.
public class OtherClass {
public MyEnum provideEnum() {
return MyEnum.VALUE_1;
}
}
java的不使用標題,而是直接進口聲明從其他類。在C++(或C)中,通常會將源文件中定義的頭文件中的聲明拆分開來,並使用一堆#include
來加載外部聲明。
在Java中,您使用等價的import
語句來啓動文件,以聲明您需要在源代碼中使用的外部類或靜態符號。
要回答確切的問題,您可以使枚舉爲普通類,或使其成爲類之一的內部(靜態)類,並從另一個類訪問它 - 提供的訪問權限允許它。
您必須知道Java沒有友善的概念。存在的更接近於包私人的默認訪問,它聲明該符號可被同一包中的所有類訪問。如果您不希望枚舉可公開訪問,則可以使用它。
Juste在您自己的文件中創建您的枚舉並將其導入到您的2個類中。 – StephaneM
創建一個公共枚舉,然後通過導入它可以在所有類中使用。 https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html – vdolez
閱讀Oracle Java教程。你不能將你的C經驗「轉換」成Java,它不會那樣工作。 – Kayaman