Rumah >pembangunan bahagian belakang >masalah PHP >Apakah perbezaan antara php dan java berorientasikan objek

Apakah perbezaan antara php dan java berorientasikan objek

青灯夜游
青灯夜游asal
2021-09-17 16:20:422107semak imbas

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.

Apakah perbezaan antara php dan java berorientasikan objek

Persekitaran pengendalian tutorial ini: sistem windows7, versi PHP7.1&&java8, komputer DELL G3

PHP dan Java oriented Perbandingan tidak lengkap objek

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.

Perbandingan 1: Pengisytiharan kelas dan antara muka, pewarisan kelas, pengisytiharan pelaksanaan antara muka

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
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
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
比较点 相同点 不同点
类声明 都是用class关键字,可用abstract、final修饰,这两个修饰符的含义都是一样 php的class关键字不能有除abstract、final之外的修饰符,Java的class关键字可以有public、proctected、private修饰符,Java的一个文件只能有一个public类
接口声明 用interface关键字 同上
类继承 用extends关键字,单继承
接口继承 用extends关键字
接口实现 用implements关键字,可以实现多个接口
类实例化 用new关键字,都是返回对象的引用,对象赋值也是引用赋值 php的new 关键字后面的类名可以是字符串类型的变量,java不可以
访问父对象
php用parent关键字,java用super关键字
php menggunakan kata kunci induk dan java menggunakan kata kunci super

Perbandingan 2: Pengubah suai akses dan kaedah akses

比较点 相同点 不同点
修饰符关键字 都是public、protected、private
修饰符行为 public: 类内部外部都可以访问,protected: 类内部和子类内部可以访问,private: 只有类内部才可以访问 php的访问控制的要松一点
默认修饰符 php默认是public,java默认是private
实例成员和实例方法的访问方法 php必须用$this->,java用this.,也可以省略

Perbandingan 3: Ahli kelas dan kaedah kelas

比较点 相同点 不同点
关键字 static
作用域 该类的所有实例
访问方法 类名::变量或函数名称,不需实例化就能访问

Perbandingan 4: Pemalar kelas

比较点 相同点 不同点
关键字 const java通常用final,php不能用final
作用域 该类的所有实例
访问方法 类名::变量或函数名称,不需实例化就能访问

Perbandingan 5: Kaedah abstrak dan kelas abstrak

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.

Perbandingan 6: Menulis semula/menimpa/melebihi beban

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!

Kenyataan:
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