JavaRush /Java Blog /Random-TW /喝咖啡休息#118。C++ 和 Java 語言有什麼不同。Java 中的私有建構函數

喝咖啡休息#118。C++ 和 Java 語言有什麼不同。Java 中的私有建構函數

在 Random-TW 群組發布

C++ 和 Java 有什麼差別

來源:Hackernoon 程式語言 C++ 和 Java 是當今最受歡迎的語言之一。讓我們討論一下 C++ 和 Java 之間的主要差異。 喝咖啡休息#118。 C++ 和 Java 語言有什麼不同。 Java 中的私有建構子 - 1Java 是一種通用程式語言。它屬於物件導向語言。Java 的創建者希望實現 WORA 原則——「一次編寫,隨處運行」。這意味著當您開發用 Java 編寫的應用程式時,只要安裝了 Java 執行時間環境 (JRE),它就可以在任何平台上運行。該程式透過將 Java 編寫的程式碼編譯為字節碼來運行。這種格式是使用JVM(即Java虛擬機器)執行的。因此,JVM 是 Java 執行時期環境 (JRE) 的一部分。虛擬機器是獨立於平台的。Java還有一種記憶體管理機制,稱為垃圾收集器(GC)。開發人員建立對象,JRE 在對象停止時使用垃圾收集器清理記憶體。Java 語言的語法與其他類 C 語言的語法相似。以下是它的一些功能:
  • 區分大小寫 - Java 中的使用者和使用者 ID 是不同的實體。

  • 方法名稱。如果方法名稱由一個單字組成,則它必須以小寫字母開頭。範例:firstMethodName()

  • 大駝峰命名法用於命名類別。如果名稱由一個單字組成,則必須以大寫字母開頭。範例:FirstClassName

  • 程式檔案的名稱必須與類別的名稱完全匹配,並考慮大小寫。例如,如果該類別名稱為FirstClassName,則該檔案應名為FirstClassName.java

  • 標識符始終以字母(AZ、az)、$ 或底線 _ 開頭。

什麼是C++語言?

C++ 是一種編譯型、強型別、通用程式語言。它支援不同的程式設計範式:過程式、通用式、函數式;大多數注意力都集中在支援物件導向程式設計上。本質上,C++ 是一組告訴電腦要做什麼的命令。這組指令通常稱為原始碼或簡稱為程式碼。命令要么是“函數”,要么是“關鍵字”。關鍵字(C/C++ 保留字)是該語言的基本建構塊。函數是複雜的建構塊,因為它們是用更簡單的函數編寫的。C++ 和 Java 函數的結構與本書的內容類似。目錄可以顯示書籍的章節;書中的每個章節都可以有自己的目錄,由段落組成;每個段落可以有自己的小段落。儘管 C++ 提供了許多可以使用的常用函數和保留字,但語言仍然要求您編寫自己的函數。

C++ 和 Java 之間的主要區別

Java 和 C++ 都是物件導向的程式語言,但它們的相似之處僅止於此。他們之間還有更多的差異。當然,在選擇一種語言來開發專案或任何其他特定案例時,C++ 和 Java 之間存在關鍵差異。以下是需要注意的標準。

圖書館

Java 還是 C++?哪個圖書館比較大或好?Java 還有更多的函式庫。但你怎麼知道哪些該用,哪些不該用呢?以下是其中一些的簡要描述:
  • lang、util、nio、io、net。
  • Java 還具有用於使用 GUI 框架的函式庫:javax.swing(較舊的 java.awt 的相當過時的擴充)。
  • 您甚至可以使用 java.sound 等播放音樂並建立 MIDI 檔案。
C++語言有C標準函式庫和C++標準函式庫。開發人員首先應確保他們理解 C 和 C++ 之間的差異。此外,他們必須研究將在特定項目中使用的庫。Java 內建了對文件註解的支援。C++ 不支援文件註解。您也可以使用方便的線上 Java 編譯器。

輸入機制

Java 主要是解釋性的,因此它是平台無關的。C++產生目標程式碼;相同的程式碼不能在不同的平台上運行。

線程支持

Java 內建了對執行緒的支援。Java 有線程類,繼承這些類別可以建立新線程並重寫 start 方法。請注意,C++ 沒有本機執行緒支援。為此,使用非標準化的第三方函式庫。

配套方式

Java有方法重載,但沒有運算子重載。String類別不使用+和+=運算子來連接字串,且String表達式使用自動轉換類型,但這是一種特殊的內建情況。C++ 同時支援方法重載和運算子重載。

記憶體管理

Java 支援自動堆釋放控制,但不支援析構函數。在 C++ 中,當物件被銷毀時,會自動啟用對析構函數的支援。

多重繼承

Java 不提供多重繼承,至少不像 C++ 那樣。多重繼承是 C++ 的一項功能,其中一個類別可以從多個類別繼承。

結論

這就是 Java 和 C++ 之間的全部差異。Java 語言非常適合商業專案。它在大公司中需求很大,因為維護和重構現有項目始終保持相關性 - 至少在銀行和其他金融機構中。您可以很好地處理跨平台開發,並使用它為任何平台創建系統。然而,與 Java 相比,C++ 還有其他優點,例如支援方法重載和運算子重載、支援析構函數等。

Java 中的私有建構函數

來源:Dev.to Java 中的建構子是一種特殊類型的方法,其名稱與類別名稱或檔案名稱相同。當我們呼叫一個物件時,總是會呼叫內部建構函數。主要用於初始化物件的狀態或類別中變數的值。 喝咖啡休息#118。 C++ 和 Java 語言有什麼不同。 Java 中的私有建構子 - 2現在讓我們來看看什麼是私有建構子。Java 讓我們可以根據使用情況改變方法。那麼,我們可以像其他方法一樣將建構函式設為私有嗎?如果是這樣,那麼私有建構子有什麼用呢?答:是的,我們可以使用 private 存取說明符將 Java 中的建構子宣告為私有建構子。但請記住,如果我們將建構函數宣告為私有,那麼我們將無法建立該類別的物件。相反,我們可以在單例設計模式中使用這個私有建構子。私有建構子的規則:
  • 它不允許一個類別成為子類別。
  • 不允許您在類別之外建立物件。
  • 如果一個類別有一個私有建構函數,那麼當我們嘗試擴展該類別時,就會發生編譯時錯誤。
  • 我們無法從任何其他類別存取私有建構子。
  • 如果我們的類別具有所有常數方法,我們可以使用私有建構子。
  • 如果所有方法都是靜態的,我們可以使用私有建構子。
  • 如果物件未初始化,我們可以使用公用函數來呼叫私有建構函數。
  • 如果該物件已經初始化,我們只能傳回該物件的實例。
public class PrivateConstructorDemo
{
     //creating an instance variable of the class Tester
     private static PrivateConstructorDemo pcd;
     //creating a private constructor
     private PrivateConstructorDemo()
     {
     }
    //creating a static method named getInstance()
    public static PrivateConstructorDemo getInstance()
    {
       if(pcd == null)
       {
        //creating a constructor of the class
        pcd = new PrivateConstructorDemo();
       }
     return pcd;
    }
    //main() method
    public static void main(String args[])
    {
     PrivateConstructorDemo pcd = PrivateConstructorDemo.getInstance();
    PrivateConstructorDemo pcd1 = PrivateConstructorDemo.getInstance();
    //invokes the getInstance() method and prints the corresponding result
    System.out.println(pcd.equals(pcd1));
   }
}
結論:
真的
現在讓我們來看看私有建構函式的用例。使用私有建構函數的主要目的是限制物件的創建。私有建構函式也用於實作單例設計模式。使用私有建構函式的選項如下:
  • 它可以與僅靜態成員的類別一起使用。
  • 它可以與靜態實用程式或常數類別一起使用。
  • 它也可以用於建立單例類別。
  • 它可以用於命名,例如使用工廠方法創建。
  • 它也用於避免子類化。
  • 它包括工廠方法。
我希望您透過這篇文章了解更多關於 Java 建構函數的知識。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION