簡體   English   中英

當我顯式使用另一個類中的一個類的公共函數時,為什么Java沒有給我編譯錯誤

[英]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/javatest/java到您的類路徑中:這樣,類class1 (例如src/java/foo/bar )和class1Test (在test/java/foo/bar )位於同一名稱空間中。

因此,這是正常的。

是否將function1ofClass1聲明為static 在這種情況下,只要函數已導入(IDE可能已為您完成),這兩個調用就完全有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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