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.
Persekitaran pengendalian artikel ini: sistem Windows 10, PHP versi 7.1, komputer Dell G3.
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(); } }
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();
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 } }
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('black'); echo $c2->getCarColor(); //black
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; } }
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!