介面中定義main方法有方法體為什麼不報編譯錯誤而且還執行成功了 50

2025-03-25 18:30:12 字數 3200 閱讀 1588

介面中定義main方法有方法體為什麼不報編譯錯誤而且還執行成功了?

1樓:網友

在 jdk 以前,介面中只能有抽象方法(public abstract 修飾的方法)跟全域性靜態常量(public static final 常量 );但是在答侍 jdk 中,允許介面中包含具有具體實現的方法,該方法稱為 「預設方法」,預設方法使用 public default 關鍵字修飾,其次,jdk 中,接則舉知口中還允許新增公共靜態方法(public static 修飾的方法)。

jdk 9 以後,介面中允許定義私有靜態方法(private static 修飾的方法)。注意:jdk 只能定義公用靜態方法(public static 修飾的方法),不允許定義私有靜態方法(private static 修飾的方法)。

所以,你在介面中定義 main 方法是可以執孫消行的,只要你的 jdk 在 及之後。

2樓:追陽趕光

我自己試了一上,是會報錯的,你的是不是開發工具沒有重新整理過來?或者是不是把這個類錯誤給遮蔽了?

j**a 命令列執行時提示找不到main方法

3樓:網友

先在命令列編譯,如果編譯成功還是執行報找不到main類,那麼就是classpath路徑中缺少「.」不包含雙引號)路徑,加上就是了。

為什麼j**a中main方法內不能定義static方法

4樓:兄弟連教育北京總校

只有類才存在bai

靜態的變數 方法du只能對靜態變數的。

zhi操作dao 不能在方法內。

內試圖定義靜態容變數。

否則的話會丟擲編譯錯誤。

靜態變數的本意是為了讓所有的物件共享這個變數,如果在方法裡面定義靜態變數的話就存在邏輯錯誤了,也達不到你想要目的。 因為在方法定義靜態變數根本沒有他的任何意義。 任何物件都有自己的方法,即使是靜態方法,方法內的變數也是在方法呼叫時候才開始分配記憶體,所以想給成靜態的在邏輯上存在問題。

5樓:曰希冀

你都說了,main是個方法,你在方法裡定義方法,肯定不對啊。

j**a:這樣為什麼會報錯呢?main函式是個靜態方法,不能在其中宣告靜態變數麼?

6樓:網友

靜態變數不能寫到方法裡面的,正確的寫法。

class test }

7樓:山之令郎

static型別變數屬於在類載入時進行定義初始化的,而main函式中的相關變數是在執行時才會宣告,在main函式中可以引用static型別變數,但不可在裡面進行宣告。

為什麼在j**a類中的main方法裡定義乙個object卻無法呼叫clone方法

8樓:聖西羅的宅男

呼叫時,當我們在自己的類裡覆蓋clone()時,對於來說是最關鍵的是:根類中的clone()方法負責建立正確的儲存容量,並通過「按位複製」將二進位位從原始物件中複製到新物件的儲存空間。也就是說,它並不只是預留儲存空間以及複製乙個物件——實際需要調查出欲複製之物件的準確大小,然後複製那個物件。

由於所有這些工作都是在由根類定義之clone()方法的內部**中進行的(根類並不知道要從自己這裡繼承出去什麼),所以大家或許已經猜到,這個過程需要用rtti判斷欲轉殖的物件的實際大小。採取這種方式,clone()方法便可建立起正確數量的儲存空間,並對那個型別進行正確的按位複製。

引用自:個人理解:clone雖然是object的方法,但是需要乙個目標去執行,直接呼叫就等於你不復制就去嘗試貼上,當然沒有了。

9樓:華興興華

檢視jdk api:按照慣例,返回的物件應該通過呼叫 獲得,乙個類及其所有的超類(object 除外)都遵守此約定。

所以object不能呼叫clone(),可以按照下面方式test test = new test();

10樓:網友

不知道你用的jdk是什麼版本?沒有問題。

j**a中已經定義了main函式,執行報錯類中找不到主方法,求大神解答是什麼原因!

11樓:網友

這裡應該沒有錯,錯應該出在其他地方,檔名是否。

12樓:網友

程式沒錯,希望你貼上你編譯、執行這個程式的詳細過程。

13樓:美圖賞

1.檔名設定錯誤。

2.環境變數設定錯誤。

你看看是哪個原因。

j**a api中的介面的方法 不是沒有方法體嗎 為什麼可以呼叫 是在哪複寫的 底層是怎麼實現的

14樓:花牛兒

實際的業務邏輯implements的class實現。

main方法執行方法時報錯,但是通過tomcat部署之後用網頁方法訪問就沒問題

15樓:典勇嘉謀

既然編譯失敗,肯定是jdk沒配置好或者你類裡面的某個字寫錯了。環境變數只要配置乙個path就夠了,指向jdk的bin目錄。像這種情況樓主最好是把原始碼跟錯誤的**貼出來。

既然你在tomcat下可以執行,那麼證明類是正確的,之前的jre沒編譯好了,可能使用了低版本的jre去編譯高版本的類檔案。

試試更換個jre看看。

樓下的有個人說的那個我挺贊同的。按理說編譯錯誤不應該是執行的時候報錯,那應該是框架使用了反射對某個配置檔案裡面的類載入編譯。而main方法沒有能在classpath中找到配置檔案中的類。

那麼試試把classpath配置成這樣看看 .;配置檔案中類的目錄;

16樓:幸福生活有肉吃

...你這理解有點繞啊。

雖然說main是一般右鍵執行的程式入口,但放在web環境下,main 也就是乙個類的乙個方法罷了。

如果main裡面涉及到了其他web的東西,沒有部署啟動伺服器,怎麼可能調的出來,不報錯就有鬼了。

17樓:歪瑞顧

部署到 tomcat下的web工程,是不會執行 main方法的。

很有意思 main方法怎麼能自己去執行? 要不你就貼**?你光說哪個曉得你啥問題?

18樓:匿名使用者

那要看如何寫的了、什麼環境中的。

有方法知道自己是不是喜歡人嗎,有方法知道自己是不是喜歡乙個人嗎

1,他 她不在身邊,你會想他 她 2,和他還有另乙個異性朋友,3個人一起玩的時候,你會想單獨跟他在一起3,你會留意和他在一起的異性 4,很久不見,你以為會向普通朋友一樣,記憶會漸漸模糊,以為想念只是日久深情的普通情感 但是真的再見到他的那一刻,所有的心跳又回來了。5,跟他在一起,平時並不好色的你,眼...

沉香的品質有方法鑑定嗎?

沉香因品種不同,質地的軟硬要求也不同,比如印尼沉香則以硬為更佳,但並非一概而論,應根據不同的沉香種類視情況而定。對於初期接觸沉香的讀者,首先要摒棄 沉香凝脂軟的一定比硬的好 這沉香個絕對概念。其次,建議在不熟悉沉香眾多類別時,不要輕易採用硬度來作為評定標準。但是,在品評中,感受某些沉香極致化的硬度依...

有膽結石怎麼辦?誰有方法?

可以通過藥物進行排石的。由於現在有一些藥物是可以通過服用了之後,人體在吸收這乙個過程使膽固醇的情況進行降低和分解,然後再通過平時的一些身體正常的運轉,使結石的情況分解後順利排出,可以喝德 溥的榆 石通茶改善,對身體沒有影響,健康溶石。.可以通過雷射手術進行排石,由雷射所發的光束對於膽囊內已經形成的結...