Javaのデフォルトコンストラクターとパラメーター化コンストラクターの違いは何ですか?
- デフォルトのコンストラクターは0引数コンストラクターです これには、スーパークラスコンストラクターへの引数なしの呼び出しが含まれています。
- 新しく作成されたオブジェクトにデフォルト値を割り当てることは、デフォルトコンストラクタの主な責任です。
- コンパイラは、プログラムがクラスにコンストラクタを書き込まない場合にのみ、デフォルトのコンストラクタをコードに書き込みます。
- デフォルトコンストラクタのアクセス修飾子は常にクラス修飾子と同じですが、このルールは「パブリック」にのみ適用されます。 および「デフォルト」 修飾子。
コンパイラがデフォルトのコンストラクタを追加するのはいつですか
- コンパイラーは、プログラマーがコードにコンストラクターを記述しない場合にのみ、デフォルトのコンストラクターをコードに追加します。
- プログラマーがコードにコンストラクターを記述した場合、コンパイラーはコンストラクターを追加しません。
- すべてのデフォルトコンストラクターは0引数のコンストラクターですが、すべての0引数コンストラクターはデフォルトコンストラクターではありません。
パラメーター化されたコンストラクター
- パラメーター化されたコンストラクターは、特定の数の引数を持つコンストラクターです 合格する。
- パラメーター化されたコンストラクターの目的は、ユーザーが必要とする特定の値をさまざまなオブジェクトのインスタンス変数に割り当てることです。
- パラメーター化されたコンストラクターは、プログラマーによって明示的に記述されます。
- デフォルトコンストラクタのアクセス修飾子は常にクラス修飾子と同じですが、このルールは「パブリック」にのみ適用されます。 および「デフォルト」 修飾子。
例
public class Student { int roll_no; String stu_name; Student(int i, String n) { // Parameterized constructor roll_no = i; stu_name = n; } void display() { System.out.println(roll_no+" "+stu_name); } public static void main(String args[]) { Student s1 = new Student(1,"Adithya"); Student s2 = new Student(2,"Jai"); s1.display(); s2.display(); } }
上記のプログラムでは、プログラマーは2つのパラメーターを持つ1つのパラメーター化されたコンストラクターを定義します。これで、コンパイラーはデフォルトのコンストラクターをコードに追加せず、プログラマーも0引数のコンストラクターを記述していません。
出力
1 Adithya 2 Jai
-
JavaのJFrameとJDialogの違いは何ですか?
JFrame フレームに追加されたコンポーネントはそのコンテンツと呼ばれ、 contentPaneによって管理されます。 。 JFrameにコンポーネントを追加するには 、 contentPaneを使用する必要があります 代わりに。 JFrame タイトルのウィンドウが含まれています 、境界線 、(オプション)メニュー バー およびユーザー -指定 コンポーネント 。 JFrame 移動できます 、サイズ変更 、アイコン化 JComponentのサブクラスではありません 。 デフォルトでは、JFrameは左上の角に表示されます 画面のr。指定した場所にフレームを表示するには
-
JavaのGridLayoutとGridBagLayoutの違いは何ですか?
GridLayout すべてのコンポーネントを長方形のグリッドに配置し、同じサイズの長方形に分割します 各コンポーネントは長方形の中に配置されますが、 GridBagLayout 柔軟です レイアウト マネージャー コンポーネントを垂直方向と水平方向に整列させます コンポーネントが同じサイズである必要はありません。各GridBagLayout オブジェクトは、動的な長方形のセルのグリッドを維持します 各コンポーネントがコンポーネントと呼ばれる1つ以上のセルを占有します 表示 エリア 。 GridLayout GridLayout コンポーネントを長方形のグリッドに配置します。セル