ホームページ >バックエンド開発 >PHPの問題 >PHPコンストラクターとJavaコンストラクターの違いは何ですか

PHPコンストラクターとJavaコンストラクターの違いは何ですか

WBOY
WBOYオリジナル
2022-03-04 10:29:412496ブラウズ

違い: 1. サブクラス コンストラクターを書き換える場合、PHP は親クラスを呼び出しませんが、Java はデフォルトで最初のステートメントの前に親クラス コンストラクターを呼び出します; 2. Java では複数のコンストラクターと PHP 値が許可されます。コンストラクターを許可する; 3. Java のコンストラクターは必須ですが、PHP では必要ありません。

PHPコンストラクターとJavaコンストラクターの違いは何ですか

この記事の動作環境: Windows 10 システム、PHP バージョン 7.1、Dell G3 コンピューター。

PHP の構築方法と Java の構築方法の違いは何ですか?

初期の 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(&#39;black&#39;);
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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。