Apakah perbezaan antara php constructor dan java constructor

WBOY
Lepaskan: 2023-03-15 14:42:01
asal
2455 orang telah melayarinya

Perbezaan: 1. Apabila menulis semula pembina subkelas, PHP tidak memanggil kelas induk, tetapi Java memanggil pembina kelas induk sebelum pernyataan pertama secara lalai 2. Java membenarkan berbilang pembina, dan nilai PHP ​​membenarkan pembina; 3. Pembina dalam Java diperlukan, tetapi tidak dalam PHP.

Apakah perbezaan antara php constructor dan java constructor

Persekitaran pengendalian artikel ini: sistem Windows 10, PHP versi 7.1, komputer Dell G3.

Apakah perbezaan antara pembina PHP dan pembina Java

PHP awal tidak mempunyai fungsi berorientasikan objek, tetapi dengan pembangunan PHP, bermula dari PHP4, berorientasikan objek adalah? turut ditambah. Sintaks berorientasikan objek PHP berkembang daripada JAVA Ia serupa di banyak tempat, tetapi ia telah membangunkan ciri-cirinya sendiri. Dari segi pembina, fungsi dengan nama yang sama dengan kelas dalam PHP4 dianggap sebagai pembina (sama seperti JAVA Namun, kaedah penulisan ini tidak lagi disyorkan dalam PHP5. Ia disyorkan untuk menggunakan __construct sebagai nama pembina.

1 Apabila menulis semula pembina subkelas, PHP tidak akan memanggil kelas induk, dan JAVA akan memanggil pembina kelas induk sebelum pernyataan pertama secara lalai

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();
    }
}
Salin selepas log masuk

Hasil keluaran:

ini ayah

ini Anak

<?php
class Father{
    public function __construct(){
        echo "正在调用Father";
    }
}
class Child extends Father{
    public function __construct(){
        echo "正在调用Child";
    }
}
$c = new Child();
Salin selepas log masuk

Hasil keluaran:

Memanggil Anak

2 . Kaedah pelaksanaan lebihan

JAVA membenarkan berbilang pembina dengan jenis dan susunan parameter yang berbeza. PHP hanya membenarkan satu pembina, tetapi membenarkan parameter lalai Ia tidak boleh melaksanakan lebihan muatan, tetapi ia boleh mensimulasikan kesan lebihan.

Kod 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
    }
}
Salin selepas log masuk

Kod 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
Salin selepas log masuk

3 Jika tiada pembina, pengkompil tidak akan menambahnya dalam PHP.

4. Pembina kelas induk dalam JAVA mesti dipanggil dalam ayat pertama Dalam PHP, tiada sekatan sedemikian, malah ia boleh dipanggil selepas ayat terakhir pembina.

5. Anda boleh memanggil pembina lain melalui ini(), PHP tidak mempunyai fungsi yang serupa.

class Pen{
    private String _color;
    public Pen(){
             this("red");//必须放在第一行
    }
    
    public Pen(String color){
        this._color = color;
    }
}
Salin selepas log masuk

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah perbezaan antara php constructor dan java constructor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan