更新時(shí)間:2021-08-25 11:19:45 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1308次
面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming,OOP)的實(shí)質(zhì)是選用一種面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言(OOPL),采用對(duì)象、類及其相關(guān)概念所進(jìn)行的程序設(shè)計(jì)。主要有Smalltalk、Eiffel、C++、Java、PHP等。
一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言:它是一種面向?qū)ο蟮恼Z(yǔ)言,包含語(yǔ)言的語(yǔ)法和語(yǔ)義。一些編譯器可以通過Smalltalk源程序產(chǎn)生可執(zhí)行文件。這些編譯器通常產(chǎn)生一種能在虛擬機(jī)上運(yùn)行的二進(jìn)制代碼。Smalltalk語(yǔ)言本身非常精煉。
一種程序設(shè)計(jì)環(huán)境:這里指的是一種提供許多對(duì)象的系統(tǒng),而不是某種特殊的開發(fā)環(huán)境。和許多語(yǔ)言不同(包括C++),Smalltalk附帶有一個(gè)巨大的、相當(dāng)標(biāo)準(zhǔn)的類庫(kù)。
這些類使得開發(fā)Smalltalk程序的效率非常高。在其它語(yǔ)言(例如 Ada , C 和 Pascal )中通常被作為語(yǔ)言的一部分的功能(例如條件判斷,循環(huán)等),在Smalltalk由特定的類提供。
一個(gè)應(yīng)用開發(fā)環(huán)境(ADE):由于Smalltalk的歷史原因,它具有一個(gè)非常優(yōu)秀的高度集成、開放的應(yīng)用開發(fā)環(huán)境。
由于開發(fā)環(huán)境中的瀏覽器、監(jiān)視器以及調(diào)試器都由同樣的源程序衍生出來的,不同的版本之間也具有相當(dāng)好的兼容性。此外,這些工具的源程序都可以在ADE直接存取。
Eiffel語(yǔ)言是繼Smalltalk-80之后的另一個(gè)"純"OOPL。這種語(yǔ)言是由OOP領(lǐng)域中著名的專家Bertrand Meyer等人20世紀(jì)80年代后期在ISE公司(Interactive Software Engineering Inc.)開發(fā)的,它的主要特點(diǎn)是全面的靜態(tài)類型化、有大量的開發(fā)工具、支持多繼承。
支持?jǐn)?shù)據(jù)封裝和數(shù)據(jù)隱藏,在C++中,類是支持?jǐn)?shù)據(jù)封裝的工具,對(duì)象則是數(shù)據(jù)封裝的實(shí)現(xiàn)。C++通過建立用戶定義類支持?jǐn)?shù)據(jù)封裝和數(shù)據(jù)隱藏。
支持繼承和重用,在C++現(xiàn)有類的基礎(chǔ)上可以聲明新類型,這就是繼承和重用的思想。通過繼承和重用可以更有效地組織程序結(jié)構(gòu),明確類間關(guān)系,并且充分利用已有的類來完成更復(fù)雜、深入的開發(fā)。
支持多態(tài)性采用多態(tài)性為每個(gè)類指定表現(xiàn)行為。多態(tài)性形成由父類和它們的子類組成的一個(gè)樹型結(jié)構(gòu)。在這個(gè)樹中的每個(gè)子類可以接收一個(gè)或多個(gè)具有相同名字的消息。
當(dāng)一個(gè)消息被這個(gè)樹中一個(gè)類的一個(gè)對(duì)象接收時(shí),這個(gè)對(duì)象動(dòng)態(tài)地決定給予子類對(duì)象的消息的某種用法。
繼承性和多態(tài)性的組合,可以輕易地生成一系列雖然類似但獨(dú)一無二的對(duì)象。由于繼承性,這些對(duì)象共享許多相似的特征。由于多態(tài)性,一個(gè)對(duì)象可有獨(dú)特的表現(xiàn)方式,而另一個(gè)對(duì)象有另一種表現(xiàn)方式。

語(yǔ)言特點(diǎn)
(1)簡(jiǎn)單性
Java看起來設(shè)計(jì)得很像C++,但是為了使語(yǔ)言小和容易熟悉,設(shè)計(jì)者們把C++語(yǔ)言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。
(2)面向?qū)ο?/p>
Java是一個(gè)面向?qū)ο蟮恼Z(yǔ)言。對(duì)程序員來說,這意味著要注意應(yīng)中的數(shù)據(jù)和操縱數(shù)據(jù)的方法(method),而不是嚴(yán)格地用過程來思考。
(3)分布性
Java設(shè)計(jì)成支持在網(wǎng)絡(luò)上應(yīng)用,它是分布式語(yǔ)言。Java既支持各種層次的網(wǎng)絡(luò)連接,又以Socket類支持可靠的流(stream)網(wǎng)絡(luò)連接,所以用戶可以產(chǎn)生分布式的客戶機(jī)和服務(wù)器。
(4)編譯和解釋性
Java編譯程序生成字節(jié)碼(byte-code),而不是通常的機(jī)器碼。Java字節(jié)碼提供對(duì)體系結(jié)構(gòu)中性的目標(biāo)文件格式,代碼設(shè)計(jì)成可有效地傳送程序到多個(gè)平臺(tái)。Java程序可以在任何實(shí)現(xiàn)了Java解釋程序和運(yùn)行系統(tǒng)(run-time system)的系統(tǒng)上運(yùn)行。
(5)穩(wěn)健性
Java原來是用作編寫消費(fèi)類家用電子產(chǎn)品軟件的語(yǔ)言,所以它是被設(shè)計(jì)成寫高可靠和穩(wěn)健軟件的。Java消除了某些編程錯(cuò)誤,使得用它寫可靠軟件相當(dāng)容易。
(6)安全性
Java的存儲(chǔ)分配模型是它防御惡意代碼的主要方法之一。Java沒有指針,所以程序員不能得到隱蔽起來的內(nèi)幕和偽造指針去指向存儲(chǔ)器。
(7)可移植性
Java使得語(yǔ)言聲明不依賴于實(shí)現(xiàn)的方面。例如,Java顯式說明每個(gè)基本數(shù)據(jù)類型的大小和它的運(yùn)算行為。
(8)高性能
Java是一種先編譯后解釋的語(yǔ)言,所以它不如全編譯性語(yǔ)言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設(shè)計(jì)者制作了“及時(shí)”編譯程序,它能在運(yùn)行時(shí)把Java字節(jié)碼翻譯成特定CPU(中央處理器)的機(jī)器代碼,也就是實(shí)現(xiàn)全編譯了。
(9)多線索性
Java是多線索語(yǔ)言,它提供支持多線索的執(zhí)行(也稱為輕便過程),能處理不同任務(wù),使具有線索的程序設(shè)計(jì)很容易。Java的lang包提供一個(gè)Thread類,它支持開始線索、運(yùn)行線索、停止線索和檢查線索狀態(tài)的方法。
(10)動(dòng)態(tài)性
Java語(yǔ)言設(shè)計(jì)成適應(yīng)于變化的環(huán)境,它是一個(gè)動(dòng)態(tài)的語(yǔ)言。例如,Java中的類是根據(jù)需要載入的,甚至有些是通過網(wǎng)絡(luò)獲取的。
中文名:“超文本預(yù)處理器”,是一種通用開源腳本語(yǔ)言。語(yǔ)法吸收了C語(yǔ)言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開發(fā)領(lǐng)域。PHP 獨(dú)特的語(yǔ)法混合了C、Java、Perl以及PHP自創(chuàng)的語(yǔ)法。
它可以比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;
PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"面向?qū)ο蟮恼Z(yǔ)言種類",希望對(duì)大家有幫助,想了解更多可查看Java教程。動(dòng)力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對(duì)沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識(shí),讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)