Rumah >pembangunan bahagian belakang >masalah PHP >Apakah perbezaan antara php dan java berorientasikan objek
Perbezaan: 1. Kata kunci kelas dalam PHP tidak boleh mempunyai pengubah selain abstrak dan muktamad manakala Java boleh. 2. Nama kelas selepas kata kunci baharu dalam php boleh menjadi pembolehubah jenis rentetan, tetapi bukan dalam java. 3. Apabila mengakses objek induk, php menggunakan induk dan java menggunakan super.
Persekitaran pengendalian tutorial ini: sistem windows7, versi PHP7.1&&java8, komputer DELL G3
PHP ialah bahasa yang ditaip lemah yang boleh diprogramkan dalam cara berorientasikan proses atau berorientasikan objek. Java ialah bahasa yang ditaip kuat, berorientasikan objek semata-mata. Kedua-dua bahasa ini mempunyai beberapa persamaan dalam aspek berorientasikan objek Dengan pengalaman pembelajaran Java, mudah untuk mempelajari PHP, hanya dengan melihat kata kunci ini (kelas, lanjutan, antara muka, pelaksanaan, akhir, awam, dilindungi, peribadi, statik. ) Terdapat perasaan yang sangat biasa.
Saya telah meringkaskan secara ringkas persamaan dan perbezaan dalam beberapa aspek Saya bukan ahli akademik, saya hanya mencari kepraktisan.
Titik perbandingan | Titik yang sama | Titik yang berbeza | Pengisytiharan kelas | semuanya dibuat dengan kata kunci kelas, yang boleh diubah suai dengan abstrak dan muktamad Maksud kedua-dua pengubah ini adalah sama | kata kunci kelas php tidak boleh mempunyai pengubah selain kata kunci kelas yang abstrak dan muktamad boleh mempunyai fail A Java yang awam, dilindungi dan peribadi satu kelas awam||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Pengisytiharan antara muka | Gunakan kata kunci antara muka | Sama seperti di atas | ||||||||||||||||||||||||
Warisan kelas | Gunakan kata kunci lanjutan, warisan tunggal | Tiada td> | ||||||||||||||||||||||||
Warisan antara muka | Gunakan kata kunci lanjutan | Tiada | ||||||||||||||||||||||||
Pelaksanaan antara muka | Gunakan kata kunci pelaksanaan untuk melaksanakan berbilang antara muka | Tiada | Penetapan kelas | Menggunakan kata kunci baharu mengembalikan rujukan kepada objek dan tugasan objek juga merupakan tugasan rujukan | Nama kelas selepas kata kunci baharu dalam PHP boleh menjadi pembolehubah jenis rentetan, tetapi bukan dalam Java | |||||||||||||||||||||
Akses objek induk |
|
php menggunakan kata kunci induk dan java menggunakan kata kunci super |
比较点 | 相同点 | 不同点 |
---|---|---|
修饰符关键字 | 都是public、protected、private | 无 |
修饰符行为 | public: 类内部外部都可以访问,protected: 类内部和子类内部可以访问,private: 只有类内部才可以访问 | php的访问控制的要松一点 |
默认修饰符 | 无 | php默认是public,java默认是private |
实例成员和实例方法的访问方法 | 无 | php必须用$this->,java用this.,也可以省略 |
比较点 | 相同点 | 不同点 |
---|---|---|
关键字 | static | 无 |
作用域 | 该类的所有实例 | 无 |
访问方法 | 类名::变量或函数名称,不需实例化就能访问 | 无 |
比较点 | 相同点 | 不同点 |
---|---|---|
关键字 | const | java通常用final,php不能用final |
作用域 | 该类的所有实例 | 无 |
访问方法 | 类名::变量或函数名称,不需实例化就能访问 | 无 |
pada dasarnya adalah sama kaedah abstrak dan kelas abstrak kedua-duanya diubah suai dengan kata kunci abstrak dipanggil kelas abstrak. Kelas abstrak tidak boleh dijadikan instantiated.
Kaedah subkelas mempunyai tandatangan yang sama seperti kaedah kelas induk, yang dipanggil menulis semula/mengatasi pada masa ini , kaedah kelas induk Tidak kelihatan dalam subkelas. Oleh kerana Java ialah bahasa yang ditaip dengan kuat, ia mempunyai mekanisme beban berlebihan (nama kaedah yang sama, tandatangan berbeza, kaedah yang dipanggil berdasarkan jenis dan nombor parameter sebenar semasa membuat panggilan). PHP ditaip lemah dan tidak mempunyai lebihan beban sebaliknya, ia mempunyai lebihan beban untuk mencipta atribut dan kaedah kelas secara dinamik, yang dicapai melalui kaedah ajaib (__get, __set, __unset, __isset, __callStatic).
Pembelajaran yang disyorkan: latihan php
Atas ialah kandungan terperinci Apakah perbezaan antara php dan java berorientasikan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!