コンストラクターはオブジェクト指向システムのメンバーです。コンストラクターはコンストラクターと呼ぶことができます。関数名はクラス名と同じです。定義する必要はありません。戻り値の型があり、特定の戻り値はありません。コンストラクタは、作成されたオブジェクトを構築するときに呼び出される関数です。その機能は、オブジェクトを初期化することです。作成されたすべてのオブジェクトは、コンストラクタを通じて初期化する必要があります。クラスにコンストラクターが定義されていない場合、クラスには空のパラメーターを持つデフォルトのコンストラクターがあります。指定したコンストラクターがクラスで定義されている場合、そのクラスにはデフォルトのコンストラクターはありません。
私たちが生まれるとき、生まれてから名前が与えられる人もいますが、生まれたときからすでに名前が与えられている人もいます。では、Java でオブジェクトを作成した後、そのオブジェクトに値を割り当てるにはどうすればよいでしょうか?
1. コンストラクターの役割:
コンストラクターの役割:オブジェクトの初期化に関する操作を実行します。
図に示すように:
2. コンストラクターと通常の関数の違い:
( 1) 一般関数は、オブジェクトが持つべき機能を定義するために使用されます。コンストラクターは、オブジェクトの作成時に関数を呼び出す前にオブジェクトが持つ必要があるコンテンツを定義します。つまり、オブジェクトの初期化内容です。
(2) コンストラクターは、オブジェクトの作成時に jvm によって呼び出され、オブジェクトを初期化します。通常、関数は、オブジェクトの作成後にオブジェクトが関数を呼び出すときに実行されます。
(3) 通常の関数はオブジェクトを使用して複数回呼び出すことができ、オブジェクトの作成時にコンストラクターが呼び出されます。
(4) コンストラクタの関数名はクラス名と同じにする必要があり、通常の関数は識別子の命名規則に従うだけで済みます。
(5) コンストラクタには戻り値の型がありません。
3. コンストラクタの注意点
(1) クラス内にコンストラクタが定義されていない場合、システムはクラスに空のパラメータを代入します。 class. のコンストラクター。これはクラスのデフォルトのコンストラクターです。クラス内でコンストラクターをカスタマイズすると、デフォルトのコンストラクターはなくなります。
注: javap コマンドを通じて確認できます。
(2) クラス内に複数のコンストラクターを定義して、異なる初期化を実行できます。クラス内には複数のコンストラクターが存在し、オーバーロードの形式で具体化されます。コンストラクターの名前がすべて同じであるためです。
class Perosn{ private int id; private String name; private int age; public Perosn(){ cry(); } public Perosn(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void cry(){ System.out.println("哇哇哇...."); } }
質問: すべての子供は、生まれるときに泣く必要があります。このコードには 2 つのコンストラクターがあります。すべての子供が生まれるときに泣く必要がある場合は、cry() を別のコンストラクターで呼び出す必要があります。)関数を使用していますが、これによりコードの重複の問題が発生します。どのように解決すればよいでしょうか?コードブロックを構築します。
4. 構築コード ブロック:
構築コード ブロックの機能: すべてのオブジェクトを均一に初期化します。
class Perosn{ private int id; private String name; private int age; { cry();// 每个Person对象创建出来都会执行这里的代码 } public Perosn(){ cry(); } public Perosn(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void cry(){ System.out.println("哇哇哇...."); } }
特定の関数:
1: オブジェクトを初期化します。オブジェクトが作成されるとすぐに実行され、コンストラクターよりも優先されます。
2: コンストラクタとの違い
(1) 構築されたコードブロックとコンストラクタ関数の違い 構築されたコードブロックはすべてのオブジェクトを一律に初期化するもの、コンストラクタ関数はto 対応するオブジェクトが初期化されます。
(2) 構築コードブロックの機能: その機能は、すべての構築方法に共通する情報を抽出することです。
たとえば、子供は生まれると一様に泣きます。
コードは次のとおりです。
class Boy { String name; int age; String gender; // 构造代码块,给所有对象进行初始化。 { System.out.println("哭。。。"); } Boy() { System.out.println("无参构造"); } Boy(String n, int a, String g) { name = n; age = a; gender = g; System.out.println("有参构造"); } void run() { System.out.println("跑..."); } } class Demo9 { public static void main(String[] args) { System.out.println(); Boy b = new Boy(); Boy b2 = new Boy("jack", 1, "男"); } }
php 中国の Web サイト、多数の無料の Java入門チュートリアル、オンライン学習を歓迎します!
以上がJavaコンストラクターとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。