Javaのコンストラクター

WBOY
リリース: 2024-08-30 15:26:34
オリジナル
349 人が閲覧しました

Java のコンストラクターは、クラスのオブジェクトを初期化するために使用される特別なタイプのメソッドです。コンストラクターは、クラスのオブジェクト作成時に呼び出されます。メソッドと同様に、メソッドにも一連のコード行が含まれていますが、メソッドとはまったく異なります。コンストラクターの名前は Java クラスと同じですが、戻り値の型はありません。 Java では、オブジェクトの作成に new() キーワードが使用され、新しいオブジェクトが作成されて 1 つのコンストラクターが呼び出されるたびに使用されます。コンストラクターは、メモリがオブジェクトに割り当てられた後に呼び出されます。オブジェクトの作成時に、コンストラクターを使用してクラス変数の値をデフォルトまたは目的の値に初期化します。

ユーザーがプログラム内でコンストラクターを作成しない場合、Java 自体がそのコンストラクターのデフォルト コンストラクターを作成し、数値のデフォルト値は 0、文字 (' ') の場合はデフォルト値、参照変数は次のようにさまざまなオブジェクトにデフォルト値を割り当てます。ヌル。メソッドと同様に、コンストラクターもオーバーロードできます。つまり、すべてのコンストラクターに一意のシグネチャがある場合、1 つのクラスに多数のコンストラクターを含めることができます。

広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト

Java のコンストラクターの基本構文を以下に示します。

構文:

public class Student() // name of the class
{
. . . .
. . . .
. . . .
Student() // this is Constructor with the same name of class
{
. . .
. . .
}
new Student(); // object creation and value initialization
}
ログイン後にコピー

上記の構文では、Student() はコンストラクターの名前であり、クラスの名前と同じであり、Java のオブジェクトはキーワード new を使用して作成されます。

Java ではコンストラクターはどのように動作しますか?

Java のコンストラクターの動作を理解するために、以下の例を見てみましょう:

コード:

public class Student()
{
int rollno;
String name;
Student(int rollno, String name)
{
this.rollno = rollno;
this.name = name;
}
public static void main(String[] args)
{
Student st = new Student(12, 'Ananya');
System.out.println("Student name = "+ st.name + "Student rollno = "+st.rollno);
}
}
ログイン後にコピー

出力:

Javaのコンストラクター

上記の例では、インスタンス変数 (クラス変数) があります。ロール番号と名前と st は、クラス Student で作成されたオブジェクトの名前です。オブジェクトが作成されると、コンストラクター Student が呼び出され、ロール番号の値が 12、名前が「Ananya」としてクラス変数が初期化されます。それ以外の場合は、rollno の 0 や名前の null などのデフォルト値が変数に割り当てられます。したがって、値を割り当てて印刷すると、学生の名前は Ananya として印刷され、学生ロール番号は 12 として印刷されます。

Java のコンストラクターの種類

Java にはパラメータに基づいた 2 種類のコンストラクタがあります:

1.パラメータ化されていない / 引数なし コンストラクター

コンストラクターで引数を渡さない場合、そのコンストラクターはパラメーター化されていないコンストラクター、または引数のないコンストラクターと呼ばれます。プログラマーが Java プログラムでコンストラクターを定義しない場合、Java コンパイラー自体が、デフォルト コンストラクターと呼ばれるコンストラクターを追加します。このコンストラクターは、0、null などのデフォルト値をオブジェクトに提供します。デフォルト コンストラクターは、特別なタイプのコンストラクターではありません。ただし、引数なしのコンストラクターのカテゴリに分類されます。

例 (デフォルトのコンストラクター)

コード:

public class Hello()
{
String name;
void display() //method to display name the value of variables
{
System.out.println("name is" +name);
}
}
public class HelloMain()
{
public static void main(String[] args)
{
Hello h1 = new Hello();
h1.display();
}
}
ログイン後にコピー

出力:
Javaのコンストラクター

上記の例では、これはプログラマによって定義されたコンストラクターではないため、コンパイラーはこのプログラムを次のように処理します。

コード:

public class Hello()
{
String name;
Hello() //default constructor created by compiler
{
name = null
}
void display()
{
System.out.println("name is" +name);
}
}
public class HelloMain()
{
public static void main(String[] args)
{
Hello h1 = new Hello();
h1.display();
}
}
ログイン後にコピー
例 (パラメーター化されていないコンストラクター)

コード:

public DemoProgram() // class
{
DemoProgram() // constructor with no arguments
{
System.out.println("Hello this is just an example of no-arg constructor");
}
public static void main(String[] args)
{
new DermoProgram();
}
}
ログイン後にコピー

出力:

Javaのコンストラクター

上記の例のように、コンストラクター DemoProgram() の場合、引数は渡されず、メッセージのみが出力されるため、引数なしのコンストラクターと呼ばれます。

2.パラメータ化されたコンストラクター

パラメーター化されたコンストラクターは、引数またはパラメーターを渡すコンストラクターです。このコンストラクターでは、オブジェクトの作成時に値が渡されます。

例 (パラメーター化されたコンストラクター)

コード:

public class Animal()
{
int legs;
String sound;
Animal(int legs, String sound) // parameterized constructor
{
this.legs = legs; // values with get initialize of what is passed while object crea-this.sound = sound; // tion, i.e. (4, “bow bow”)
}
void display() // method to display the values
{
System.out.println("Legs are "+legs+"Sound is "+sound);
}
}
class AnimalPlanet()
{
public static void main(String[] args)
{
Animal an = new Animal(4, "bow bow");
an.display();
}
}
ログイン後にコピー

出力:

Javaのコンストラクター

上記の例では、コンストラクター Animal で値 4 が脚に割り当てられ、文字列「bow bow」がサウンドに割り当てられます。したがって、display メソッドが呼び出されると、両方の値が出力に表示されます。

覚えておくべき重要なポイント

  • プログラマーが作成したかどうかに関係なく、すべてのクラスにはコンストラクターがあります。
  • コンストラクター名はクラス名と同じである必要があります。
  • メソッドとは異なり、コンストラクターには戻り値の型がありません。
  • this() および super() キーワードはコンストラクターの最初のステートメントである必要があります。
  • メソッドと同様、コンストラクターもオーバーロードできます。
  • コンストラクターはオーバーライドできません。
  • あるコンストラクターは、キーワード this() を使用して同じクラスの別のコンストラクターを呼び出すことができます。
  • アクセス指定子/修飾子は、コンストラクターの名前の前に適用して、クラス内でスコープを宣言できます。
  • Java では、コンストラクターを static、final、abstract、Synchronized にすることはできません。

結論

Java プログラミング言語を使用する場合、コンストラクターは重要な役割を果たします。コンストラクター、さまざまなタイプのコンストラクター、コンストラクター チェーン、および特定のシナリオに従って動作するように親コンストラクターを呼び出すために使用される super() キーワードの完全な概念を理解する必要があります。 Java でのコンストラクターの操作はメソッドの操作と同様に非常に簡単ですが、いくつかの特定のポイントを徹底的に学習する必要があります。

以上がJavaのコンストラクターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート