[英]Why java doesn't give me compile error when I use public functions of one class in another class explicitly
我在兩個不同的文件和兩個不同的文件夾中有兩個類class1和class1Test。 第一個在文件夾src中,第二個在文件夾測試中(同一項目)。 現在想象一下我的class1Test中有以下代碼,並且function1ofClass1是公共的:
class1 c1 = new class1();
int a = function1ofClass1();
int b = c1.function1ofClass1();
顯然,第一次調用function1ofClass1是不正確的,但是在這種情況下,為什么java(我正在使用eclipse)沒有給我編譯錯誤? 我知道C#會。 我的歸檔組織有問題嗎,或者這是java的工作方式嗎?
看來您的測試類擴展了包含該函數的類,這就是為什么編譯器不給您編譯錯誤的原因。
第一個在文件夾src中,第二個在文件夾test中
而且您正在使用為您進行設置的IDE。 它將src/java
和test/java
到您的類路徑中:這樣,類class1
(例如src/java/foo/bar
)和class1Test
(在test/java/foo/bar
)位於同一名稱空間中。
因此,這是正常的。
是否將function1ofClass1
聲明為static
? 在這種情況下,只要函數已導入(IDE可能已為您完成),這兩個調用就完全有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.