『壹』 php真的能算是面向對象的語言嗎
面向對象三大特性:封裝,繼承,多態
php可以封裝對象,也可以繼承,同樣可以實現多態
多態是指指出重寫和重載,php子類可以重寫父類的方法,也可以通過方法的參數數量不同來重載方法,我覺得是面向對象語言
『貳』 請問PHP中的面向對象,java面向對象一樣嗎。如果不一樣,有什麼區別(有好的回答的的話回加分的)
沒有哪2種語言的面對對象做法是完全一樣。所以回答是「不一樣」。
由於各自語言的特性,細節區別非常多,不可勝訴。
總體上,php在設計對象模型式參考了java的設計,但改成適應php自身的形式。
php沒有java的自動化class loader,在類的讀取和對象創建上就要注意先後。php的自動讀取要手動設置。
php由於自身是動態類型語言,變數本身的類型動態,就沒有java的重載功能。這也導致類設計上的一些很大區別。
php的動態特性和具有自我反射能力,可以把方法名稱當成「消息」發送,在運行時判斷對象是否能接收消息,java的靜態就不能直接應用這樣的設計。
php6.x之前估計不會類似java的有名字空間或包管理機制。
php的對象可以動態地後添加屬性增減數據,java是禁止這樣做的。
php的方法名稱還不區分大小寫。
php的動態特性也就不需要模板泛型編程的特性。在java中泛型也占很重要的一部分。
等等等等
相同點,都具有final,抽象類,介面,變數可見度等語法。
總之,這些不同都是由語言特性和適用場合決定的
『叄』 php面向對象的概念理解.
我覺得沒必要去深究他的意思。
按我的理解,面向對象編程,主要是將我們實際生活中的對象經過抽象,將它定義成為一個類,通過類的屬性和方法來模擬生活中的這個對象。這樣使得程序更容易結構化、抽象起來更方便。
面向對象技術最初是從面向對象的程序設計開始的,
面向對象編程並不困難
它的出現以60年代simula語言為標志。80年代中後期,面向對象程序設計逐漸成熟,被計算機界理解和接受,人們又開始進一步考慮面向對象的開發問題。這就是九十年代以microsoft
visual系列oop軟體的流行的背景。
傳統的結構化分析與設計開發方法是一個線性過程,因此,傳統的結構化分析與設計方法要求現實系統的業務管理規范,處理數據齊全,用戶能全面完整地其業務需求。
傳統的軟體結構和設計方法難以適應軟體生產自動化的要求,因為它以過程為中心進行功能組合,軟體的擴充和復用能力很差。
對象是對現實世界實體的模擬,因面能更容易地理解需求,即使用戶和分析者之間具有不同的教育背景和工作特點,也可很好地溝通。
區別面向對象的開發和傳統過程的開發的要素有:對象識別和抽象、封裝、多態性和繼承。
對象(object)是一個現實實體的抽象,由現實實體的過程或信息牲來定義。一個對象可被認為是一個把數據(屬性)和程序(方法)封裝在一起的實體,這個程序產生該對象的動作或對它接受到的外界信號的反應。這些對象操作有時稱為方法。對象是個動態的概念,其中的屬性反映了對象當前的狀態。
類(class)用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
由上分析不難看出,盡管oop技術更看中用戶的對象模型,但其目的都是以編程為目的的,而不是以用戶的信息為中心的,總想把用戶的信息納入到某個用戶不感興趣的「程序對象」中。
『肆』 PHP,Java,Python,C,C++ 這幾種編程語言都各有什麼特點或優點
來自:http://blog.csdn.net/singit/article/details/54919132
以下是其中提及的各種語言的優點,文章中還列舉了缺點分析。
(1)PHP的優點:
1. 跨平台,性能優越,跟linux/Unix結合別跟Windows結合性能強45%,開發成本低,
PHP最經典的組合就是:Linux + Apache + MySQL + PHP。非常適合開發中小型的web應用,因為上手容易,所以開發的速度比較快。而且所有的軟體都是開源免費的,可以減少投入。
比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)結合,或者數據應用夠大可以考慮換 PostgreSQL或者Oracle,支持N種資料庫。(N >= 10)
2. 語法簡單,入門快,如果有其它語言基礎的程序員二周左右的時間基本可以入門,並且跟ASP有部分類似。有成熟的開發工具,比如NuPHPed,或者Zend Studio等等,再Linux平台下可以使用Eclipse等等。
3. 目前主流技術都支持,比如WebService、Ajax、XML等等,足夠應用。
4. 有比較完整的支持,比如使用ADODB或者PEAR::DB做資料庫抽象層,用Smarty或者smart template做模板層,如果是PHP 5.1的話,還能夠使用PDO(PHP Data Object)來訪問資料庫。
5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持類似ASP.NET的事件驅動的框架:Prado,支持類似Ruby On Rails的快速開發的框架:Cake等等,足夠滿足你的應用需求。
6. PHP 5已經有成熟的面向對象體系,能夠適應基本的面向對象要求。適合開發大型項目。
7. 有成熟的社區來支持PHP的開發。
8. 目前已經很多大型應用都是使用PHP,比如淘寶網、Yahoo、163、Sina等等大型門戶,很多選用PHP來作為他們的開發語言,所以大型門戶都能夠選用它,我想足夠能夠你的使用了。(據了解現在內部都在逐漸轉向JAVA)
9. 有很多開源的框架或開源的系統可以使用,比如比較知名的開源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開源論壇有Discuz!、Phpwind等,開源博客 WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。
PHP是解釋性的腳本語言,寫完代碼以後即可以執行,不像c,java,c++等語言還需要去編譯執行,相對來說比較節省時間。
10.相對來說,PHP程序員的薪水的平均工資要比c,c++,java程序員的平均工資要低一些,特別是對於中小型企業來說可以節約一些成本。
11.配置及部署相對簡單一些,對比JAVA開發來說,JAVA開發的配置就復雜多了,什麼Structs、Spring、Hibernate、Tomcat等等很多地方都需要配置,甚至你在程序中每寫一個SQL語句都需要先在Hibernate中配置一下,有時重新部署一個class文件或jar文件還可能需要重啟Web伺服器(Tomcat或Resin或其它的Web伺服器)使新部署的庫文件生效。PHP開發中主要是PHP自身的配置文件及Web伺服器的配置(如Apache或Nginx或Lighttpd等),相對於JAVA來說還是簡單一些,而且新修改了文件以後不需要重新啟動Web即可以立即生效。
12.有很多開源的框架或開源的系統可以使用,比如比較知名的開源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開源論壇有Discuz!、Phpwind等,開源博客WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。
(2)JAVA的優點:
1.簡單性
2.面向對象性(面向對象的程度可以達到95%)
3.健壯性
4.跨平台性
5.高性能(自動垃圾回收機制)
6.多線程
7.動態性
8.安全性
(3)Python的優點:
1.簡單————Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴格!Python的這種偽代碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。
2.易學————就如同你即將看到的一樣,Python極其容易上手。前面已經提到了,Python有極其簡單的語法。
3.免費、開源————Python是FLOSS(自由/開放源碼軟體)之一。簡單地說,你可以自由地發布這個軟體的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用於新的自由軟體中。FLOSS是基於一個團體分享知識的概念。這是為什麼Python如此優秀的原因之一——它是由一群希望看到一個更加優秀的Python的人創造並經常改進著的。
4.高層語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節。
5.可移植性————由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。如果你小心地避免使用依賴於系統的特性,那麼你的所有Python程序無需修改就可以在下述任何平台上面運行。這些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至還有PocketPC、Symbian以及Google基於linux開發的Android平台!
6.解釋性————這一點需要一些解釋。一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程通過編譯器和不同的標記、選項完成。當你運行你的程序的時候,連接/轉載器軟體把你的程序從硬碟復制到內存中並且運行。而Python語言寫的程序不需要編譯成二進制代碼。你可以直接從源代碼 運行 程序。在計算機內部,Python解釋器把源代碼轉換成稱為位元組碼的中間形式,然後再把它翻譯成計算機使用的機器語言並運行。事實上,由於你不再需要擔心如何編譯程序,如何確保連接轉載正確的庫等等,所有這一切使得使用Python更加簡單。由於你只需要把你的Python程序拷貝到另外一台計算機上,它就可以工作了,這也使得你的Python程序更加易於移植。
7.面向對象————Python既支持面向過程的編程也支持面向對象的編程。在「面向過程」的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在「面向對象」的語言中,程序是由數據和功能組合而成的對象構建起來的。與其他主要的語言如C++和Java相比,Python以一種非常強大又簡單的方式實現面向對象編程。
8.可擴展性————如果你需要你的一段關鍵代碼運行得更快或者希望某些演算法不公開,你可以把你的部分程序用C或C++編寫,然後在你的Python程序中使用它們。
9.可嵌入性————你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。
10.豐富的庫————Python標准庫確實很龐大。它可以幫助你處理各種工作,包括正則表達式、文檔生成、單元測試、線程、資料庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其他與系統有關的操作。記住,只要安裝了Python,所有這些功能都是可用的。這被稱作Python的「功能齊全」理念。除了標准庫以外,還有許多其他高質量的庫,如wxPython、Twisted和Python圖像庫等等。
概括————Python確實是一種十分精彩又強大的語言。它合理地結合了高性能與使得編寫程序簡單有趣的特色。
規范的代碼————Python採用強制縮進的方式使得代碼具有極佳的可讀性。
(4)C語言的優點:
1.簡潔緊湊、靈活方便
2.運算符豐富
3.數據結構豐富
4. C是結構式語言
5. C語法限制不太嚴格,程序設計自由度大
6. C語言允許直接訪問物理地址,可以直接對硬體進行操作
7. C語言程序生成代碼質量高,程序執行效率高
8. C語言適用范圍大,可移植性好
9. C語言有一個突出的優點就是適合於多種操作系統,如DOS、UNIX,也適用於多種機型
10.有效地將一個較復雜的程序系統設計任務分解成許多易於控制和處理的子任務,便於開發和維護
(5)C++的優點:
1.可擴展性強
2.高效 簡潔 快速
3.可移植性
4.面向對象的特性
5.強大而靈活的表達能力和不輸於C的效率
6.支持硬體開發
7.程序模塊間的關系更為簡單,程序模塊的獨立性、數據的安全性就有了良好的保障
8.通過繼承與多態性,可以大大提高程序的可重用性,使得軟體的開發和維護都更為方便