您好,登錄后才能下訂單哦!
小編給大家分享一下php和java面向?qū)ο蟮膮^(qū)別有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
區(qū)別:1、php的class關(guān)鍵字不能有除abstract、final之外的修飾符;而Java可以有。2、php的new關(guān)鍵字后面的類名可以是字符串類型的變量,java不可以。3、訪問父對象時(shí),php用parent,而java用super。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1&&java8版,DELL G3電腦
PHP是一門弱類型語言,可以用面向過程方式編程,也可以面向?qū)ο蠓绞骄幊?。Java則是一門強(qiáng)類型語言,純面向?qū)ο?。這兩門語言在面向?qū)ο蠓矫嬗行┫嗨浦?,有了Java的學(xué)習(xí)經(jīng)驗(yàn)學(xué)習(xí)PHP很容易上手,光是看這些關(guān)鍵字(class、extends、interface、implements、final、public、protected、private、static)就有一種很熟悉的感覺。
初略總結(jié)了幾個(gè)方面的異同,本人不是學(xué)術(shù)派,只求實(shí)用,如有錯(cuò)誤之處,歡迎指正。
比較點(diǎn) | 相同點(diǎn) | 不同點(diǎn) |
---|---|---|
類聲明 | 都是用class關(guān)鍵字,可用abstract、final修飾,這兩個(gè)修飾符的含義都是一樣 | php的class關(guān)鍵字不能有除abstract、final之外的修飾符,Java的class關(guān)鍵字可以有public、proctected、private修飾符,Java的一個(gè)文件只能有一個(gè)public類 |
接口聲明 | 用interface關(guān)鍵字 | 同上 |
類繼承 | 用extends關(guān)鍵字,單繼承 | 無 |
接口繼承 | 用extends關(guān)鍵字 | 無 |
接口實(shí)現(xiàn) | 用implements關(guān)鍵字,可以實(shí)現(xiàn)多個(gè)接口 | 無 |
類實(shí)例化 | 用new關(guān)鍵字,都是返回對象的引用,對象賦值也是引用賦值 | php的new 關(guān)鍵字后面的類名可以是字符串類型的變量,java不可以 |
訪問父對象 | php用parent關(guān)鍵字,java用super關(guān)鍵字 |
比較點(diǎn) | 相同點(diǎn) | 不同點(diǎn) |
---|---|---|
修飾符關(guān)鍵字 | 都是public、protected、private | 無 |
修飾符行為 | public: 類內(nèi)部外部都可以訪問,protected: 類內(nèi)部和子類內(nèi)部可以訪問,private: 只有類內(nèi)部才可以訪問 | php的訪問控制的要松一點(diǎn) |
默認(rèn)修飾符 | 無 | php默認(rèn)是public,java默認(rèn)是private |
實(shí)例成員和實(shí)例方法的訪問方法 | 無 | php必須用$this->,java用this.,也可以省略 |
比較點(diǎn) | 相同點(diǎn) | 不同點(diǎn) |
---|---|---|
關(guān)鍵字 | static | 無 |
作用域 | 該類的所有實(shí)例 | 無 |
訪問方法 | 類名::變量或函數(shù)名稱,不需實(shí)例化就能訪問 | 無 |
比較點(diǎn) | 相同點(diǎn) | 不同點(diǎn) |
---|---|---|
關(guān)鍵字 | const | java通常用final,php不能用final |
作用域 | 該類的所有實(shí)例 | 無 |
訪問方法 | 類名::變量或函數(shù)名稱,不需實(shí)例化就能訪問 | 無 |
基本相同,抽象方法和抽象類都是用 abstract 關(guān)鍵字修飾,至少有一個(gè)抽象方法的類叫做抽象類,抽象類不能實(shí)例化,如果子類要能夠?qū)嵗仨殞?shí)現(xiàn)父類的所有抽象方法。
子類方法與父類方法簽名完全一樣,叫做重寫/覆蓋,此時(shí)父類方法在子類中是不可見的。Java由于是強(qiáng)類型語言,有重載機(jī)制(相同方法名字,不同簽名,調(diào)用時(shí)根據(jù)實(shí)際參數(shù)類型和個(gè)數(shù)確定調(diào)用的是哪一個(gè)方法)。PHP是弱類型,沒有這種重載,而有動態(tài)地創(chuàng)建類屬性和方法這種重載,是通過魔術(shù)方法(__get, __set, __unset, __isset, __callStatic)來實(shí)現(xiàn)的。
以上是“php和java面向?qū)ο蟮膮^(qū)別有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。