C++ と Java の違いは何ですか
出典: Hackernoon プログラミング言語の C++ と Java は、今日最も人気のある言語の 1 つです。C++ と Java の主な違いについて説明します。 Java は汎用プログラミング言語です。それはオブジェクト指向言語に属します。Java の作成者は、「一度書けばどこでも実行できる」という WORA の原則を実装したいと考えていました。これは、Java で書かれたアプリケーションを開発する場合、Java ランタイム環境 (JRE) がインストールされていれば、どのプラットフォームでも実行できることを意味します。プログラムは、Java で書かれたコードをバイトコードにコンパイルすることによって実行されます。この形式は、JVM、つまり Java 仮想マシンを使用して実行されます。したがって、JVM は Java ランタイム環境 (JRE) の一部です。仮想マシンはプラットフォームに依存しません。Java には、ガベージ コレクター (GC) と呼ばれるメモリ管理メカニズムもあります。開発者はオブジェクトを作成し、JRE はオブジェクトが停止したときにガベージ コレクターを使用してメモリをクリーンアップします。Java 言語の構文は、他の C 系言語の構文と似ています。その機能の一部を次に示します。-
大文字と小文字の区別 - Java のユーザーとユーザー ID は異なるエンティティです。
-
メソッド名。メソッド名が 1 つの単語で構成される場合は、小文字で始める必要があります。例: firstMethodName()。
-
UpperCamelCase はクラスの名前付けに使用されます。名前が 1 つの単語で構成される場合は、大文字で始める必要があります。例: FirstClassName。
-
プログラム ファイルの名前は、大文字と小文字の区別を考慮して、クラスの名前と正確に一致する必要があります。たとえば、クラスの名前がFirstClassNameの場合、ファイルの名前はFirstClassName.javaにする必要があります。
-
識別子は常に文字 (AZ、az)、$、またはアンダースコア _ で始まります。
C++言語とは何ですか?
C++ は、コンパイルされ、厳密に型指定された汎用プログラミング言語です。手続き型、汎用、関数型など、さまざまなプログラミング パラダイムをサポートしています。オブジェクト指向プログラミングのサポートに最も注意が払われています。本質的に、C++ はコンピューターに何をすべきかを指示する一連のコマンドです。この一連の命令は、通常、ソース コード、または単にコードと呼ばれます。コマンドは「関数」または「キーワード」のいずれかです。キーワード (C/C++ 予約語) は、言語の基本的な構成要素です。関数はより単純な関数で記述されているため、複雑な構成要素となります。C++ および Java 関数の構造は、この本の内容と似ています。目次には本の章を表示できます。本の各章には、段落で構成される独自の目次を含めることができます。各段落には独自のサブ段落を含めることができます。C++ には使用できる一般的な関数と予約語が多数用意されていますが、この言語では依然として独自の関数を作成する必要があります。C++ と Java の主な違い
Java と C++ はどちらもオブジェクト指向プログラミング言語ですが、類似点はそこにあります。それらの間にはさらに多くの違いがあります。もちろん、プロジェクトやその他の特定のケースを開発するために言語の 1 つを選択する場合、C++ と Java の間には決定的な違いがあります。注意すべき基準は次のとおりです。図書館
Java か C++ ですか? どの図書館が大きいか、優れていますか? Java にはさらに多くのライブラリがあります。しかし、どれを使用すべきか、どれを使用しないべきかをどうやって判断するのでしょうか? そのうちのいくつかについて簡単に説明します。- lang、util、nio、io、net。
- Java には、GUI フレームワークを操作するためのライブラリ、javax.swing (さらに古い java.awt のかなり時代遅れの拡張機能) もあります。
- java.sound などを使用して音楽を再生したり、MIDI ファイルを作成したりすることもできます。
入力機構
Java は主に解釈されるため、プラットフォームに依存しません。C++ はオブジェクト コードを生成します。同じコードを異なるプラットフォームで実行することはできません。スレッドのサポート
Java にはスレッドのサポートが組み込まれています。Java には、新しいスレッドを作成し、start メソッドをオーバーライドするために継承されるスレッド クラスがあります。C++ にはネイティブ スレッド サポートがないことに注意してください。これらの目的には、標準化されていないサードパーティのライブラリが使用されます。サポート方法
Java にはメソッドのオーバーロードがありますが、演算子のオーバーロードはありません。Stringclass は文字列の連結に + 演算子と += 演算子を使用せず、Stringexpression は自動変換型を使用しますが、これは特殊な組み込みのケースです。C++ は、メソッドのオーバーロードと演算子のオーバーロードの両方をサポートしています。メモリ管理
Java は自動ヒープ割り当て解除制御をサポートしていますが、デストラクターはサポートしていません。C++ では、オブジェクトが破棄されると、デストラクターのサポートが自動的に有効になります。多重継承
Java は、少なくとも C++ と同じ方法では、多重継承を提供しません。多重継承は、クラスが複数のクラスから継承できる C++ の機能です。結論
それが Java と C++ の大きな違いです。Java 言語は商用プロジェクトに最適です。少なくとも銀行やその他の金融機関では、既存のプロジェクトの維持とリファクタリングが常に関連性を維持するため、大企業での需要が非常に高くなります。クロスプラットフォーム開発を非常にうまく処理でき、それを使用してあらゆるプラットフォーム用のシステムを作成できます。ただし、C++ には、メソッドのオーバーロードと演算子のオーバーロードの両方のサポート、デストラクターのサポートなど、Java に比べて他の利点もあります。Java のプライベート コンストラクター
出典: Dev.to Java のコンストラクターは、クラス名またはファイル名と同じ名前を持つ特別なタイプのメソッドです。オブジェクトを呼び出すと、常に内部コンストラクターが呼び出されます。主にオブジェクトの状態やクラス内の変数の値を初期化するために使用されます。 次に、プライベート コンストラクターとは何かを見てみましょう。Java では、用途に応じてメソッドを変更できます。では、他のメソッドと同様にコンストラクターをプライベートにできるでしょうか? もしそうなら、プライベート コンストラクターは何に役立つのでしょうか? 回答: はい、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));
}
}
結論:
真実
次に、プライベート コンストラクターの使用例を見てみましょう。プライベート コンストラクターを使用する主な目的は、オブジェクトの作成を制限することです。プライベート コンストラクターは、シングルトン デザイン パターンの実装にも使用されます。プライベート コンストラクターを使用するためのオプションは次のとおりです。
- 静的メンバー専用クラスで使用できます。
- 静的ユーティリティまたは定数クラスで使用できます。
- シングルトン クラスの作成にも使用できます。
- ファクトリメソッドを使用した作成など、名前付けに使用できます。
- サブクラス化を避けるためにも使用されます。
- これにはファクトリーメソッドが含まれます。
GO TO FULL VERSION