1. 程式人生 > 其它 >面向物件的語言種類

面向物件的語言種類

面向物件程式設計(Object Oriented Programming,OOP)的實質是選用一種面向物件程式設計語言(OOPL),採用物件、類及其相關概念所進行的程式設計。主要有Smalltalk、Eiffel、C++、Java、PHP等。

1.Smalltalk

一種面向物件的程式設計語言:它是一種面向物件的語言,包含語言的語法和語義。一些編譯器可以通過Smalltalk源程式產生可執行檔案。這些編譯器通常產生一種能在虛擬機器上執行的二進位制程式碼。Smalltalk語言本身非常精煉。

一種程式設計環境:這裡指的是一種提供許多物件的系統,而不是某種特殊的開發環境。和許多語言不同(包括C++),Smalltalk附帶有一個巨大的、相當標準的類庫。

這些類使得開發Smalltalk程式的效率非常高。在其它語言(例如 Ada , C 和 Pascal )中通常被作為語言的一部分的功能(例如條件判斷,迴圈等),在Smalltalk由特定的類提供。

一個應用開發環境(ADE):由於Smalltalk的歷史原因,它具有一個非常優秀的高度整合、開放的應用開發環境。

由於開發環境中的瀏覽器、監視器以及偵錯程式都由同樣的源程式衍生出來的,不同的版本之間也具有相當好的相容性。此外,這些工具的源程式都可以在ADE直接存取。

2.Eiffel

Eiffel語言是繼Smalltalk-80之後的另一個"純"OOPL。這種語言是由OOP領域中著名的專家Bertrand Meyer等人20世紀80年代後期在ISE公司(Interactive Software Engineering Inc.)開發的,它的主要特點是全面的靜態型別化、有大量的開發工具、支援多繼承。

3.C++

支援資料封裝和資料隱藏,在C++中,類是支援資料封裝的工具,物件則是資料封裝的實現。C++通過建立使用者定義類支援資料封裝和資料隱藏。

支援繼承和重用,在C++現有類的基礎上可以宣告新型別,這就是繼承和重用的思想。通過繼承和重用可以更有效地組織程式結構,明確類間關係,並且充分利用已有的類來完成更復雜、深入的開發。

支援多型性採用多型性為每個類指定表現行為。多型性形成由父類和它們的子類組成的一個樹型結構。在這個樹中的每個子類可以接收一個或多個具有相同名字的訊息。

當一個訊息被這個樹中一個類的一個物件接收時,這個物件動態地決定給予子類物件的訊息的某種用法。

繼承性和多型性的組合,可以輕易地生成一系列雖然類似但獨一無二的物件。由於繼承性,這些物件共享許多相似的特徵。由於多型性,一個物件可有獨特的表現方式,而另一個物件有另一種表現方式。

4.Java

語言特點

(1)簡單性

Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程式設計師很少使用的。

(2)面向物件

Java是一個面向物件的語言。對程式設計師來說,這意味著要注意應中的資料和操縱資料的方法(method),而不是嚴格地用過程來思考。

(3)分佈性

Java設計成支援在網路上應用,它是分散式語言。Java既支援各種層次的網路連線,又以Socket類支援可靠的流(stream)網路連線,所以使用者可以產生分散式的客戶機和伺服器。

(4)編譯和解釋性

Java編譯程式生成位元組碼(byte-code),而不是通常的機器碼。Java位元組碼提供對體系結構中性的目標檔案格式,程式碼設計成可有效地傳送程式到多個平臺。Java程式可以在任何實現了Java解釋程式和執行系統(run-time system)的系統上執行。

(5)穩健性

Java原來是用作編寫消費類家用電子產品軟體的語言,所以它是被設計成寫高可靠和穩健軟體的。Java消除了某些程式設計錯誤,使得用它寫可靠軟體相當容易。

(6)安全性

Java的儲存分配模型是它防禦惡意程式碼的主要方法之一。Java沒有指標,所以程式設計師不能得到隱蔽起來的內幕和偽造指標去指向儲存器。

(7)可移植性

Java使得語言宣告不依賴於實現的方面。例如,Java顯式說明每個基本資料型別的大小和它的運算行為。

(8)高效能

Java是一種先編譯後解釋的語言,所以它不如全編譯性語言快。但是有些情況下效能是很要緊的,為了支援這些情況,Java設計者製作了“及時”編譯程式,它能在執行時把Java位元組碼翻譯成特定CPU(中央處理器)的機器程式碼,也就是實現全編譯了。

(9)多線索性

Java是多線索語言,它提供支援多線索的執行(也稱為輕便過程),能處理不同任務,使具有線索的程式設計很容易。Java的lang包提供一個Thread類,它支援開始線索、執行線索、停止線索和檢查線索狀態的方法。

(10)動態性

Java語言設計成適應於變化的環境,它是一個動態的語言。例如,Java中的類是根據需要載入的,甚至有些是通過網路獲取的。

5.PHP

中文名:“超文字前處理器”,是一種通用開源指令碼語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。

它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的程式語言相比,PHP是將程式嵌入到HTML(標準通用標記語言下的一個應用)文件中去執行,執行效率比完全生成HTML標記的CGI要高許多;

PHP還可以執行編譯後代碼,編譯可以達到加密和優化程式碼執行,使程式碼執行更快。