• 招生咨詢熱線:4008-569-579 
  • 手機版
    用手機掃描二維碼直達商品手機版
招生咨詢熱線
4008-569-579
機構主頁 > 培訓資料 > Java培訓:為什么Java中的cont關鍵字沒有實現(xiàn)?
機構主頁 > 培訓資料>Java培訓:為什么Java中的cont關鍵字沒有實現(xiàn)?

Java培訓:為什么Java中的cont關鍵字沒有實現(xiàn)?

來源:廣州達內(nèi)教育        時間:2023-05-30        熱度:41℃        返回列表

  Java

語言的最初設計者將“const”關鍵字作為保留字。但該術語仍未實現(xiàn),而且很可能永遠不會實現(xiàn)。這種情況讓許多開發(fā)人員想知道為什么。想學習java技術,建議考慮報名參加Java培訓,有明確的學習路線和全面系統(tǒng)的課程,能獲得較快提升。


  讓我們更多地了解 Java 中的“const”關鍵字以及描述語言中常量的一些替代方法。


  Java 中的“const”是什么意思?


  任何看過 Java

中的“const”關鍵字的人都會從邏輯上假設其最初的意圖是定義一個常量值。這個假設不會太離譜。


  競爭語言 C 和 C++ 都使用“const”關鍵字,但這些語言并非純粹面向對象。問題就在這里。在 Java

中,作為“const”的東西到底意味著什么?


  保持不變是否意味著實例變量不會改變?

  保持不變是否意味著類變量不會改變?

  常量是否意味著對象的方法不能被覆蓋?

  保持不變是否意味著對象引用不會改變?

  恒定是否意味著對象是不可變的?


  考慮到上述所有問題,另一個大問題是如果一個對象僅在某些情況下是恒定的?


  例如,某些語言允許“const”作為方法簽名的一部分,這表明對象及其屬性在方法內(nèi)使用的短時間內(nèi)不能更改。這有時被稱為常量正確性。語言架構師在檢查這些任務并試圖確定“const”關鍵字的含義時,最終可能會陷入一個深深的兔子洞。通過java培訓,你可以學習更多java知識,以提高java技能。




  Java 的“final”與“const”關鍵字


  在 Java 中最初可能使用“const 關鍵字”解決的許多用例使用 Java 的“final”關鍵字已經(jīng)足夠解決了。在

Java 中,“final”用于:


  將原始值標記為常量;

  表示方法不能被覆蓋;

  指定對象引用不能更改;

  確保變量在方法中不變。



  當“static”和“final”關鍵字組合時,可以使類級變量保持不變。雖然這并沒有完全涵蓋在其他語言中使用“const”關鍵字的所有不同場景,但它已經(jīng)接近了。此外,將“靜態(tài)”和“最終”組合在一起的選擇為常量屬性的行為方式提供了更大的靈活性,而不是僅使用一個關鍵字來嘗試解決實例和類級別的語義。


  當開發(fā)人員考慮語言通過允許將“static”和“final”關鍵字菊花鏈在一起而提供的功能和靈活性時,人們可能會推斷

Java 中未實現(xiàn)“const”關鍵字的原因是因為它不需要。與 Java

中的“const”關鍵字的實現(xiàn)相比,“static”和“final”關鍵字的組合有效且可以說提供了一種更具表現(xiàn)力的方式來聲明不變的變量。


  不可變對象


  就完全不可變的對象而言,歷史上的解決方法是將實例變量聲明為私有并通過公共 setter 和 getter

限制訪問。最近,Java 引入了值類型的概念作為 JEP 169 的一部分。這將為該語言添加不可變、無引用的對象,并再次提供一種 Java

語言語法來實現(xiàn)許多與“const”相關的概念。在java培訓中,也有很多關于java安全工具的學習,理論知識+實踐項目,雙管齊下,學以致用,讓你深入淺出地學習java。


  關于在 Java 中使用“const”關鍵字來實現(xiàn) const 正確性的討論始于 1999

年。但是,增強提案被拒絕為特性蠕變。語言架構師斷言,在完全增量之后在 Java 中添加 const 實現(xiàn)——JDK

的長期支持版本已經(jīng)推出——將導致代碼膨脹,并且可能存在向后兼容性問題,從而完全扼殺了這個概念。從那以后,在 Java

中實現(xiàn)“const”關鍵字的想法就再也沒有被重新審視過。




  Java 中的 const 關鍵字不能在不導致編譯時錯誤的情況下使用。


  為什么“const”沒有在 Java

中實現(xiàn)?如果沒有實現(xiàn)它的意圖,為什么要讓const成為保留字呢?


  一個可能的原因是避免混淆。如果“const”不是保留字,則允許開發(fā)人員使用該短語來命名變量。試想一下,對于學習使用“const”實現(xiàn)的語言進行編程的

C++ 和 Javascript 開發(fā)人員來說,這可能會造成多大的困惑。簡單地將 Java

中的“const”關鍵字設為保留字有助于避免任何混淆。


  為什么 Java 中的“const”是沒有實現(xiàn)的保留字?


  同樣,這主要是為了避免混淆。其他關鍵字提供了等效的功能,并且因為該概念不適合面向對象的范例。或者用外行的話來說,Java

不需要它。


  在大多數(shù)情況下,因為 JDK 不需要它,“const”在 Java

中沒有實現(xiàn)。其他語言特性提供聲明常量或提供不變性的能力。該語言的提供者希望避免混淆,并決定即使是善意的開發(fā)人員也不能在他們的代碼中使用該術語。很多人都會選擇報java培訓班學習,可以更快速學到有用的知識和技能,節(jié)省很多時間和精力。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部