當前位置: 妍妍網 > 碼農

簡化 Hello World:Java 新寫法要來了!!

2024-03-29碼農

大家好,我是鵬磊。

這個提案主要是引入 「靈活的 Main 方法和匿名 Main 類」 ,希望 Java 的學習過程能更平滑,讓學生和初學者能更好地接受 Java 。

提案的作者 Ron Pressler 解釋:現在的 Java 語言非常適合開發和維護大型復雜應用程式,但學校在教編程時往往會從變量、函式和子程式等基本的小型編程概念開始,在這個階段,往往不需要類、包和模組的大型編程概念。

但現在的 Java 對初學者不太友好,比如經典的 Hello, World! 入門程式 :

public classHelloWorld
publicstaticvoidmain(String[] args)
System.out.println("Hello, World!");
}
}

Ron 認為,作為新手入門的第一個程式,這段程式碼太復雜了。比如 class 聲明和強制性的 public 存取修飾詞是大型編程結構,它們在封裝具有定義良好的外部元件介面的程式碼單元時很有用,但在這個入門小範例中毫無意義。String [] args 參數用於將程式碼與外部元件連線起來,但在這段程式碼裏面不會被使用。static 修飾詞是 Java 類和物件模型的一部份,但在新手村出現也為時尚早。

作為最佳化,該提案首先增強了啟動 Java 程式的協定靈活性:

1.允許已啟動類的 main 方法具有 public 、 protected 或預設(即包)存取許可權。

2.如果啟動的類不包含帶 String [] 參數的 static main 方法,但包含不帶參數的 static main 方法,則呼叫該方法。

如果你近期準備面試跳槽,建議在ddkk.com線上刷題,涵蓋 一萬+ 道 Java 面試題,幾乎覆蓋了所有主流技術面試題,還有市面上最全的技術五百套,精品系列教程,免費提供。

3.如果啟動的類沒有 static main 方法,但有一個非 private 零參數建構函式(即 public 、 protected 或包存取)和一個非 private 例項 main 方法,然後構造該類的一個例項。如果該類有一個帶 String [] 參數的例項 main 方法,則呼叫該方法;否則,不帶參數呼叫例項 main 方法。

如此一來便允許省略 main 方法的 String[] 參數,並允許 main 方法既不是 public 也不是 static 。可以稍微簡化 Hello, World! :

classHelloWorld
voidmain()
System.out.println("Hello, World!");
}
}

此外,還要引入 匿名 Main 類 來隱式聲明 class

voidmain(){
System.out.println("Hello, World!");
}

到這裏 Java 的 Hello, World! 入門程式已經到了簡化,但在 Ron 眼裏,該 JEP 提供的最佳化只是使 Java 更易於學習的第一步,像 System.out.println 這種長方法 / 函式也是需要簡化的地方,不過這些問題需要在未來的 JEP 提案中逐步解決。

該最佳化屬於預覽語言功能,預設禁用。要在 JDK 21 中嘗試該範例,必須啟用預覽功能:用 javac --release 21 --enable-preview Main.java 編譯程式,用 java --enable-preview Main 執行;或者使用原始碼啟動器時,使用 java --source 21 --enable-preview Main.java 運行程式。

🔥 磊哥私藏精品 熱門推薦 🔥