違い: 1. サブクラス コンストラクターを書き換える場合、PHP は親クラスを呼び出しませんが、Java はデフォルトで最初のステートメントの前に親クラス コンストラクターを呼び出します; 2. Java では複数のコンストラクターと PHP 値が許可されます。コンストラクターを許可する; 3. Java のコンストラクターは必須ですが、PHP では必要ありません。
この記事の動作環境: Windows 10 システム、PHP バージョン 7.1、Dell G3 コンピューター。
初期の PHP にはオブジェクト指向の機能はありませんでしたが、PHP4 以降の PHP の発展により、オブジェクト指向の機能が登場しました。向けの機能も追加されました。 PHP のオブジェクト指向構文は JAVA から進化したもので、多くの点で似ていますが、独自の特徴を発展させてきました。コンストラクタに関しては、PHP4ではクラスと同名の関数をコンストラクタ(JAVAと同じ)とみなしていましたが、PHP5ではこの書き方は推奨されなくなりましたので、関数名として__constructを使用することを推奨します。コンストラクター。
1. サブクラス コンストラクターを書き換える場合、PHP は親クラスを呼び出しません。JAVA は、デフォルトで最初のステートメントの前に親クラス コンストラクターを呼び出します。
JAVA
class Father{ public Father(){ System.out.println("this is fahter"); } } class Child extends Father{ public Child(){ System.out.println("this is Child"); } } public class Test { public static void main(String[] args){ Child c = new Child(); } }
Output結果:
this is fahter
this is Child
<?php class Father{ public function __construct(){ echo "正在调用Father"; } } class Child extends Father{ public function __construct(){ echo "正在调用Child"; } } $c = new Child();
出力結果:
Calling Child
2. 繰り返しロードの実装
JAVA では、パラメーターの型と順序が異なる複数のコンストラクターが許可されます。 PHP ではコンストラクターは 1 つだけ許可されますが、デフォルトのパラメーターは許可され、オーバーロードを実装することはできませんが、オーバーロードの効果をシミュレートすることはできます。
JAVA コード
class Car{ private String _color; //设置两个构造函数,一个需要参数一个不需要参数 public Car(String color){ this._color = color; } public Car(){ this._color = "red"; } public String getCarColor(){ return this._color; } } public class TestCar { public static void main(String[] args){ Car c1 = new Car(); System.out.println(c1.getCarColor()); //打印red Car c2 = new Car("black"); System.out.println(c2.getCarColor()); //打印black } }
PHP コード
<?php class Car{ private $_color; //构造函数带上默认参数 public function __construct($color="red"){ $this->_color = $color; } public function getCarColor(){ return $this->_color; } } $c1 = new Car(); echo $c1->getCarColor(); //red $c2 = new Car('black'); echo $c2->getCarColor(); //black
3. コンストラクターは JAVA では必要です。コンストラクターがない場合、コンパイラーは自動的に追加しますが、PHP では追加しません。 。 ミーティング。
4. JAVA では親クラスのコンストラクターは最初の文で呼び出す必要がありますが、PHP ではそのような制限はなく、コンストラクターの最後の文の後で呼び出すこともできます。
5. this() を通じて別のコンストラクターを呼び出すことができますが、PHP には同様の関数がありません。
class Pen{ private String _color; public Pen(){ this("red");//必须放在第一行 } public Pen(String color){ this._color = color; } }
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPコンストラクターとJavaコンストラクターの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。