java面向對象的特征有哪些方面
計算機軟件系統是現實生活中的業務在計算機中的映射,而現實生活中的業務其實就是一個個對象協作的過程。面向對象編程就是按現實業務一樣的方式將程序代碼按一個個對象進行組織和編寫,讓計算機系統能夠識別和理解用對象方式組織和編寫的程序代碼,這樣就可以把現實生活中的業務對象映射到計算機系統中。
面向對象的編程語言有封裝、繼承 、抽象、多態等4個主要的特征。
1封裝:
封裝是保證軟件部件具有優良的模塊性的基礎,封裝的目標就是要實現軟件部件的“高內聚、低耦合”,防止程序相互依賴性而帶來的變動影響。在面向對象的編程語言中,對象是封裝的最基本單位,面向對象的封裝比傳統語言的封裝更為清晰、更為有力。面向對象的封裝就是把描述一個對象的屬性和行為的代碼封裝在一個“模塊”中,也就是一個類中,屬性用變量定義,行為用方法進行定義,方法可以直接訪問同一個對象中的屬性。通常情況下,只要記住讓變量和訪問這個變量的方法放在一起,將一個類中的成員變量全部定義成私有的,只有這個類自己的方法才可以訪問到這些成員變量,這就基本上實現對象的封裝,就很容易找出要分配到這個類上的方法了,就基本上算是會面向對象的編程了。把握一個原則:把對同一事物進行操作的方法和相關的方法放在同一個類中,把方法和它操作的數據放在同一個類中。
例如,人要在黑板上畫圓,這一共涉及三個對象:人、黑板、圓,畫圓的方法要分配給哪個對象呢?由于畫圓需要使用到圓心和半徑,圓心和半徑顯然是圓的屬性,如果將它們在類中定義成了私有的成員變量,那么,畫圓的方法必須分配給圓,它才能訪問到圓心和半徑這兩個屬性,人以后只是調用圓的畫圓方法、表示給圓發給消息而已,畫圓這個方法不應該分配在人這個對象上,這就是面向對象的封裝性,即將對象封裝成一個高度自治和相對封閉的個體,對象狀態(屬性)由這個對象自己的行為(方法)來讀取和改變。一個更便于理解的例子就是,司機將火車剎住了,剎車的動作是分配給司機,還是分配給火車,顯然,應該分配給火車,因為司機自身是不可能有那么大的力氣將一個火車給停下來的,只有火車自己才能完成這一動作,火車需要調用內部的離合器和剎車片等多個器件協作才能完成剎車這個動作,司機剎車的過程只是給火車發了一個消息,通知火車要執行剎車動作而已。
抽象:
抽象就是找出一些事物的相似和共性之處,然后將這些事物歸為一個類,這個類只考慮這些事物的相似和共性之處,并且會忽略與當前主題和目標無關的那些方面,將注意力集中在與當前目標有關的方面。例如,看到一只螞蟻和大象,你能夠想象出它們的相同之處,那就是抽象。抽象包括行為抽象和狀態抽象兩個方面。例如,定義一個Person類,如下:
class Person
{
String name;
int age;
}
人本來是很復雜的事物,有很多方面,但因為當前系統只需要了解人的姓名和年齡,所以上面定義的類中只包含姓名和年齡這兩個屬性,這就是一種抽像,使用抽象可以避免考慮一些與目標無關的細節。我對抽象的理解就是不要用顯微鏡去看一個事物的所有方面,這樣涉及的內容就太多了,而是要善于劃分問題的邊界,當前系統需要什么,就只考慮什么。
繼承:
在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,并可以加入若干新的內容,或修改原來的方法使之更適合特殊的需要,這就是繼承。繼承是子類自動共享父類數據和方法的機制,這是類之間的一種關系,提高了軟件的可重用性和可擴展性。
多態:
多態是指程序中定義的引用變量所指向的具體類型和通過該引用變量發出的方法調用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量倒底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定。因為在程序運行時才確定具體的類,這樣,不用修改源程序代碼,就可以讓引用變量綁定到各種不同的類實現上,從而導致該引用調用的具體方法隨之改變,即不修改程序代碼就可以改變程序運行時所綁定的具體代碼,讓程序可以選擇多個運行狀態,這就是多態性。多態性增強了軟件的靈活性和擴展性。例如,下面代碼中的UserDao是一個接口,它定義引用變量userDao指向的實例對象由daofactory.getDao()在執行的時候返回,有時候指向的是UserJdbcDao這個實現,有時候指向的是UserHibernateDao這個實現,這樣,不用修改源代碼,就可以改變userDao指向的具體類實現,從而導致userDao.insertUser()方法調用的具體代碼也隨之改變,即有時候調用的是UserJdbcDao的insertUser方法,有時候調用的是UserHibernateDao的insertUser方法:
UserDao userDao = daofactory.getDao();
userDao.insertUser(user);
如果滿意請給分哦!
眾所周知,Java是一種面向對象性的語言。而面向對象,Obeject Oriented,是一種編程術語。面向對象是當今軟件開發方法的主流方法之一,他是把數據以及對數據的操作放在一起,作為一個相互依存的整體,就是我們所說的對象。那么Java面向對象的特征又是什么?下面就一起來看看Java面向對象的四大特征:
特征一:抽象
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象不打算了解全部問題,而是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面:過程抽象;數據抽象。
特征二:繼承
繼承是一種連接類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類的繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且派生類可以修改或者增加新的方法使之更適合特殊的需要。
特征三:封裝
封裝是指將客觀事物抽象成類,每個類對自身的數據和方法實行保護。類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。
特征四:多態
多態是指允許不同類的對象對同一消息做出響應。多態包括參數化多態和包含多態。多態性語言具有靈活、抽象、行為共享、代碼共享等優勢,很好地解決了應用程序函數同名問題。Java中實現多態主要是方法的重載和方法的覆蓋。
JAVA面向對象最重要的特征就是:封裝,繼承,多態。
封裝是為了方便調用類庫里面已經寫好的函數,繼承是方便對已有函數的功能進行直接調用和擴展。按照原則,java中已經寫好的類庫會被打包成jar包,不允許調用者更改里面的代碼。
但是你可以通過其中的抽象類或者接口,根據具體的業務邏輯進行功能的擴展。
多態的作用是,可以實現對繼承對象的統一調度,是面向對象的精髓所在。
另外,java還有語言簡單,面向對象,和平臺無關性。之所以java可以跨平臺,在于他可以通過java虛擬機JVM,將java代碼解釋成該平臺能理解的語言。
1.抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。
2.繼承:繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。
3.封裝:封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。
4. 多態性:多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
謝謝采納
封裝、繼承、 多態
Java中面向對象的特征有哪些?
Java中面向對象的特征有哪些?有四大基本特征:封裝、抽象、繼承、多態
面向對象的封裝性:即將對象封裝成 一個高度自治和相對封閉的個體,對象狀態(屬性)由這個對象自己的行為(方法)來讀取和改變
抽象:就是找出一些事物的相似和共性之處,然后將這些事物歸為一類,這個類只考慮這些事物的相似之處和共性之處,并且會忽略與當前主題和目標無關的那些方面,將注意力集中與當前目標有關的方面。就是把現實生活中的對象抽象為類。
繼承:在定義和實現一個類的時候,可以在一個已經存在的類的基礎上來進行,把這個已經存在的類所定義的內容作為自己的內容,并可以加入若干新的內容,或修改原來的方法使之更符合特殊的需要。
多態:指程序中定義的引用變量所指向的具體類型和通過該引用變量發出的方法調用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量到底會指向那個類的實例對象,該引用變量發出的方法調用到底是哪個類中的實現方法,必須在程序運行期間才能確定。
面向對象的三個基本特征是:封裝、繼承、多態
封裝:封裝就是對把客觀事情封裝成抽象了,并且將自己的數據和方法讓可信對象操作,對不可信的進行信息的隱藏,以保證信息的安全性。
優點:
將變化隔離
便于操作使用
提高重用性
提高安全性
封裝的實現方式例如:
成員變量私有化(private),同時對外提供get、set方法,使其他對象不能直接訪問成員變量,需要使用get、set方法操作成員變量
繼承
繼承就子類繼承父類的特征和行為,使得子類對象具有父類的信息,同時可以擴展子類本身的特征和行為。
繼承的實現方式:
extends、implements
繼承的特性
子類擁有父類非私(private)有屬性和方法
子類可以擁有屬于自己的屬性和方法(對父類的擴展)
Java中單繼承、多實現
多態
多態就是統一接口,使用不同的實現,而執行不同的操作
多態的實現方式
靜態多態(重載)、動態多態(重寫)
面向對象方法的主要特征有哪些?
關于二級C++面向對象方法的主要特征有:
1、封裝性
封裝是一種信息隱蔽技術,它體現于類的說明,是對象的重要特性。封裝使數據和加工該數據的方法(函數)封裝為一個整體,以實現獨立性很強的模塊,使得用戶只能見到對象的外特性(對象能接受哪些消息,具有那些處理能力),而對象的內特性(保存內部狀態的私有數據和實現加工能力的算法)對用戶是隱蔽的。
2、繼承性
繼承性是子類自動共享父類之間數據和方法的機制。它由類的派生功能體現。一個類直接繼職其它類的全部描述,同時可修改和擴充。
3、多態性
對象根據所接收的消息而做出動作。同一消息為不同的對象接受時可產生完全不同的行動,這種現象稱為多態性。利用多態性用戶可發送一個通用的信息,而將所有的實現細節都留給接受消息的對象自行決定,如是,同一消息即可調用不同的方法。
擴展資料
面向對象方法的優越性
(1)強調從現實世界中客觀存在的事物(對象)出發來認識問題域和構造系統,這就使系統開發者大大減少了對問題域的理解難度,從而使系統能更準確地反映問題域。
(2)運用人類日常的思維方法和原則(體現于OO方法的抽象、分類、繼承、封裝、消息通訊等基本原則)進行系統開發,有益于發揮人類的思維能力,并有效地控制了系統復雜性。
(3)對象的概念貫穿于開發過程的終,使各個開發階段的系統成分具良好的對應,從而顯著地提高了系統的開發效率與質量,并大大降低系統維護的難度。
(4)對象概念的一致性,使參與系統開發的各類人員在開發的各所段具有共同語言,有效地改善了人員之間的交流和協作。
(5)對象的相對穩定性和對易變因素隔離,增強了系統的應變能力。
(6)對象類之間的繼承關系和對象的相對獨立性,對軟件復用提供了強有力的支持。
計算機軟件系統是現實生活中的業務在計算機中的映射, 而現實生活中的業務其實就是一個個對象協作的過程。
面向對象編程就是按現實業務一樣的方式將程序代碼按一個個對象進行組織和編寫, 讓計算機系統能夠識別和理解用對象方式組織和編寫的程序代碼, 這樣就可以把現實生活中的業務對象映射到計算機系統中。透切理解面向對象四大基本特性是理解面向對象五大基本原則的基礎:
1、封裝:封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面,面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治,封裝的對象,這些對象通過一個受保護的接口訪問其他對象
2、繼承:繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表達共性的方法,對象的一個新類可以從現在的類中派生,這個過程成為繼承,新類繼承了原始類的特性,新類成為原始類的派生類,而原始類稱為新類的基類,派生類可以從他的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更加適合特殊的需求
3、抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便充分的注意與當前目標有關的方面,抽象包括兩個方面,一個是過程抽象,二是數據抽象
4、多態性:多態性是指允許不同類的對象對同一消息作出響應,多態性包括參數化多態性和包含多態性,多態性語言具有靈活,抽象,行為共享,代碼共享的優勢,很好的解決了應用程序函數同名的問題
運行時的多態是面向對象最精髓的東西,要實現多態需要做兩件事:
1). 方法重寫(子類繼承父類并重寫父類中已有的或抽象的方法);
2). 對象造型(用父類型引用引用子類型對象,這樣同樣的引用調用同樣的方法就會根據子類對象的不同而表現出不同的行為)
(1)對象唯一性。
每個對象都有自身唯一的標識,通過這種標識,可找到相應的對象。在對象的整個生命期中,它的標識都不改變,不同的對象不能有相同的標識。
(2)抽象性。
分類性是指將具有一致的數據結構(屬性)和行為(操作)的對象抽象成類。一個類就是這樣一種抽象,它反映了與應用有關的重要性質,而忽略其他一些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。
(3)繼承性。
繼承性是子類自動共享父類數據結構和方法的機制,這是類之間的一種關系。在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,并加入若干新的內容。
繼承性是面向對象程序設計語言不同于其它語言的最重要的特點,是其他語言所沒有的。
在類層次中,子類只繼承一個父類的數據結構和方法,則稱為單重繼承。
在類層次中,子類繼承了多個父類的數據結構和方法,則稱為多重繼承。
在軟件開發中,類的繼承性使所建立的軟件具有開放性、可擴充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的創建工作量,增加了代碼的可重性。
采用繼承性,提供了類的規范的等級結構。通過類的繼承關系,使公共的特性能夠共享,提高了軟件的重用性。
(4)多態性(多形性)
多態性是指相同的操作或函數、過程可作用于多種類型的對象上并獲得不同的結果。不同的對象,收到同一消息可以產生不同的結果,這種現象稱為多態性。
多態性允許每個對象以適合自身的方式去響應共同的消息。
多態性增強了軟件的靈活性和重用性。 望采納
面向對象的編程語言(Object-oriented Programming Language)是專門為面向對象觀念而發展出來的,通過它可以便捷地實現面向對象的封裝、繼承、多態等特性。1.封裝封裝是一種信息隱藏技術,即對象內部對用戶是隱藏的,不可直接訪問;用戶只能見到對象封裝界面上的信息,通過對象的外部接口訪問對象。封裝的目的在于將對象的使用者和對象的設計者分開,使用者無須知道對象內部實現的細節,只需要知道對象接收的消息即可。當用戶向對象發送消息后,對象將根據收到的消息來調用內部方法以做出響應。在C++語言中,對象的構成由類來描述,每個類的成員可以分為私有和公有兩種類型,對象的外部不能直接訪問對象的私有部分。對象的封裝特性可以提高模塊之間的獨立性,使得系統易于調試和維護。假設應用系統中有兩個模塊:一個模塊從計算機的串行通訊口接收數據,放入緩沖區;另一個為數據處理模塊。數據處理模塊可以直接訪問緩沖區,從緩沖區中讀取數據。此時這兩個模塊之間的關聯程度密切,模塊獨立性很差。如果接收數據的模塊改變緩沖區的管理方法,則第二個模塊必須做相應的改變。如果數據處理模塊對緩沖區操作有誤,將影響數據接收模塊,在程序調試時難以確定錯誤發生在哪一個模塊中。實際上,數據處理模塊并不需要緩沖區的管理信息,它只需要知道緩沖區中有沒有數據以及有什么樣的數據。上面的處理方法違反了軟件工程中的信息隱藏原則,數據處理模塊訪問了它不需要的信息。將數據接收模塊封裝為一個對象,緩沖區的管理信息作為其私有數據,即可避免上面的問題。數據接收模塊只要提供一個從緩沖區獲得數據的接口即可。數據處理模塊只能訪問該接口,而不能直接操作緩沖區。此時兩個模塊之間的獨立性提高,如需改變緩沖區的管理方法,只需修改數據接收模塊,數據處理模塊將不受任何影響,因為數據接收模塊提供的外部接口沒有改變。2.繼承人們在對客觀世界的事物進行描述時,經常采取分類的方法。類是有層次的,即某個大類的事物可能分為若干小類,而這些小類可能又分為若干個更小的類。面向對象思想采納了事物分類的層次思想,在描述類的時候,某些類之間具有結構和行為的共性。例如教師類與學生類,在結構方面均具有姓名、年齡、身高、體重等,在行為(或操作)方面均具有回答身高、回答體重等操作。將這些共性抽取出來,形成一個單獨的類--人,描述教師類和學生類中的共性。類(人)的結構特征和行為特征可以被多個相關的類共享,例如教師類和學生類繼承了人的結構和行為特征。在C++語言中,通過類的派生機制來實現類的繼承,可以從一個類中派生出一個新的類,這個類稱為派生類的基類或父類,派生出的新類稱為基類的派生類或子類。派生類的對象具有基類對象的特征,同時又有其自身特有的特征。一個教師類的對象與一個學生類的對象都具有人這個類所描述的特征,同時又具有教師類和學生類各自所特有的特征。利用類之間的繼承關系,可以簡化類的描述。在人這個類中描述教師類和學生類的共性,而在學生類和教師類中只需描述各自的個性。利用繼承機制可以提高軟件代碼的可重用性。在設計一個新類時,不必從頭設計和編寫全部的代碼,可以通過從已有的具有類似特性的類中派生出一個類,繼承原有類中的部分特性,再加上所需要的新特性。這一點與面向過程的設計語言中的過程或函數不同,在面向過程的設計語言中,要使用具有相似功能的過程或函數,必須修改源程序代碼以使其適應新系統的功能需求,而類的派生機制無需原有類的源代碼即可派生出新的類。利用類及其繼承性描述系統時,由于類之間的繼承關系,可能會形成一種具有層次性的類結構。在使用類的層次結構描述系統時,某些類之間的層次關系可以有多種實現方案。例如中學生類,既可以直接從人這個類派生出來,也可以從人這個類的派生類--學生類派生出來。在設計類的層次結構時,應注意建立的類層次結構是否易于理解以及組織類結構的費用等方面的問題。設計出來的類層次結構是否合理,往往取決于系統分析員的經驗等因素。3.多態性多態性是面向對象系統的又一重要特性。所謂多態,即一個名詞可具有多種語義。在C++語言中,多態性主要表現在以下兩個方面。(1) 重載在C++語言中,同一函數名以及運算符可以具有不同含義的多種實現版本,編譯器將根據函數調用的參數形式決定調用哪一種實現版本。(2) 虛函數C++語言引入了虛函數機制,允許在不同類層次對象中應用函數成員的不同版本。例如實現一個類Shape,然后從該類派生出畫點的類Point、畫圓的類Circle、畫直線的類Line,每一種圖形的畫法均不同,但是它們都有幾種共同的操作--顯示圖形、擦除圖形、移動圖形。移動圖形的操作都是首先擦除圖形,然后改變圖形的位置基準點,再在新位置顯示出圖形。在類Shape中實現移動圖形的操作,每種圖形的顯示、擦除、改變基準點等操作在派生類中分別實現。若程序中使用某圖形對象的移動操作,編譯器采用動態聯編的手段,在執行時根據該圖形對象是哪一個類的實例,決定調用哪一個類的顯示、擦除、改變基準點的方法。這種多態性稱為運行時的多態性。而重載在編譯時編譯器即可確定使用哪一個實現版本,是靜態的。
多,繼,封
1,面向對象的特征有哪些方面
面向對象的編程方法具有四個基本特征:
1.抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。
2.繼承:繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。
3.封裝:封裝是面向對象的特征之一,是對象和類概念的主要特性。封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。
4. 多態性:多態性是指允許不同類的對象對同一消息作出響應
相關推薦:
離婚房產問題(離婚房產分割問題)
非法同居生子(非婚同居可以生孩子嗎)
遺棄多久才構成遺棄罪(父母扔下孩子多長時間是遺棄罪)
如何去處理遺產繼承糾紛(產生遺產繼承糾紛怎么解決)
有效的遺囑必須具備什么(遺囑有效的4個條件)