java面向對象特性
㈡ Java的特點有哪些
Java是一種優秀的程序設計語言,它具有令人賞心悅目的語法和易於理解的語義。不僅如此,Java還是一個由一系列計算機軟體和規范形成的技術體系,這個技術體系提供了完整的用於軟體開發和跨平台部署的支持環境,並廣泛應用於嵌入式系統、移動終端、企業伺服器、大型機等各種場合。順便說一下,JavaScript和Java沒有任何關系,最開始JavaScript叫liveScript,當時Java太火了,於是乎 liveScript更名為JavaScript借勢宣傳了一波。
隨便搜搜近幾年的編程類語言排行榜,Java絕對都是當之無愧的老大哥。那麼,Java究竟有什麼特性能獲得 廣大程序員的一致青睞呢? 在此列出java的11個特性:
1.簡單性
Java語法是C++語法的一個「純凈版本」。這里沒有頭文件,指針運算(甚至指針語法),結構,聯合,操作符重載,虛基類等等。不僅如此,Java開發環境遠遠超出大多數其他編程語言的開發環境。
2.面向對象
什麼是面向對象?用木匠打一個比方,一個「面向對象」的木匠始終關注的是所製作的椅子,第二位才是所使用的工具;而一個「非面向對象」木匠首先考慮的是所使用的工具。
在Java的世界裡,一切皆對象。
Java的面向對象特性與C++旗鼓相當,與C++不同的點在於多重繼承。在Java中,取而代之的是更簡單的介面概念。而且與C++想比,Java提供了更豐富非運行時自省功能。
3.分布式(微服務)
Java有豐富的常式庫,用於處理HTTP和FTP之類的TCP/IP協議。Java應用程序能夠通過URL打開和訪問網路上的對象,其便捷程度就好像訪問本地文件一樣。
4.健壯性
Java與C++最大的不同在於Java使用的指針模型可以消除重寫內存和損壞數據的可能性(對於曾經花費幾個小時來檢查由於指針bug而引起內存沖突的人來說,一定很喜歡Java的這一特性)。不僅如此,Java編譯器能夠檢測許多在其他語言中僅在運行時才能夠檢測出來的問題。
5.安全性
Java適用於網路/分式式環境。為了達到這個目標,在安全性方面投入了大量的精力。使用Java可以構建防病毒,防篡改的系統。
從一開始,Java就設計出能夠防範常見的各種攻擊:
(1)運行時堆棧溢出。蠕蟲和病毒常用的攻擊手段。(2)破壞自己進程空間之外的內存。(3)未經授權讀寫文件。
6.體系結構中立
編譯器生成一個體系結構中立的目標文件格式,這是一種編譯過的代碼,只要有Java運行時系統,這些編譯後的代碼就可以在許多處理器上運行。Java編譯器通過生成與特定計算機體系結構無關的位元組碼指令來實現這一特性。精心設計的位元組碼不僅可以很容易的在任何機器上解釋執行,而且還可以動態地翻譯成本地機器代碼。
7.可移植性
與C/C++不同,Java規范中沒有「依賴具體實現的地方」。基本數據類型的大小以及有關運算都做了明確的說明。例如,Java中的int永遠是32位的整數,二在C/C++中,int可能是16位整數,32位整數,也可能是編譯器提供商指定的其他大小。在Java中,數據類型具有固定的大小,這消除了代碼代碼移植時令人頭疼的主要問題。
8.解釋型
Java解釋器可以再任何移植了解解釋器的機器上執行Java位元組碼。由於鏈接是一個增量式且輕量級的過程。所以開發過程也變得更加快捷,更加具有探索性。
9.高能性
盡管對解釋後的位元組碼性能已經比較滿意,但是在某些場合下可能需要更加高效的性能。位元組碼可以(在運行時刻)動態的翻譯成對應運行這個應用的特定CPU的機器碼。
10.多線程
Java在當時很超前,他是第一個支持並發程序設計的主流語言,多線程可以帶來更好的交互影響和實時行為。並發程序設計絕非易事,但是Java在這方面表現出色,可以很好的管理這個工作。
11.動態性
Java與C/C++相比更具有動態性。它能夠適應不斷發展的環境。庫中可以自由的添加新方法和實例變數,而對客戶端沒有任何影響。在Java中找出運行時類型信息十分簡單。
㈢ Java中面向對象的三大特徵是什麼
面向對象三大特性
繼承:一般類只能單繼承,內部類實現多繼承,介面可以多繼承
封裝:訪問許可權控制public > protected > 包 > private 內部類也是一種封裝
多態:編譯時多態,體現在向上轉型和向下轉型,通過引用類型判斷調用哪個方法(靜態分派)。
運行時多態,體現在同名函數通過不同參數實現多種方法(動態分派)。
希望對您有所幫助!~
㈣ Java中面向對象的特徵有哪些
有四大基本特徵:封裝、抽象、繼承、多態
面向對象的封裝性:即將對象封裝成 一個高度自治和相對封閉的個體,對象狀態(屬性)由這個對象自己的行為(方法)來讀取和改變
抽象:就是找出一些事物的相似和共性之處,然後將這些事物歸為一類,這個類只考慮這些事物的相似之處和共性之處,並且會忽略與當前主題和目標無關的那些方面,將注意力集中與當前目標有關的方面。就是把現實生活中的對象抽象為類。
繼承:在定義和實現一個類的時候,可以在一個已經存在的類的基礎上來進行,把這個已經存在的類所定義的內容作為自己的內容,並可以加入若干新的內容,或修改原來的方法使之更符合特殊的需要。
多態:指程序中定義的引用變數所指向的具體類型和通過該引用變數發出的方法調用在編程時並不確定,而是在程序運行期間才確定,即一個引用變數到底會指向那個類的實例對象,該引用變數發出的方法調用到底是哪個類中的實現方法,必須在程序運行期間才能確定。
㈤ 北大青鳥java培訓:Java語言中的面向對象特性
1.封裝性封裝性就是把對象的屬性和服務結合成一個獨立的相同單位,並盡可能隱蔽對象的內部細節,包含兩個含義:◇把對象的全部屬性和全部服務結合在一起,形成一個不可分割的獨立單位(即對象)。
◇信息隱蔽,即盡可能隱蔽對象的內部細節,對外形成一個邊界〔或者說形成一道屏障〕,只保留有限的對外介面使之與外部發生聯系。
封裝的原則在軟體上的反映是:要求使對象以外的部分不能隨意存取對象的內部數據(屬性),從而有效的避免了外部錯誤對它的"交叉感染",使軟體錯誤能夠局部化,大大減少查錯和排錯的難度。
2.繼承性特殊類的對象擁有其一般類的全部屬性與服務,稱作特殊類對一般類的繼承。
一個類可以是多個一般類的特殊類,它從多個一般類中繼承了屬性與服務,這稱為多繼承。
在java語言中,通常我們稱一般類為父類(superclass,超類),特殊類為子類(subclass)。
3.多態性對象的多態性是指在一般類中定義的屬性或服務被特殊類繼承之後,電腦培訓http://www.kmbdqn.cn/認為可以具有不同的數據類型或表現出不同的行為。
這使得同一個屬性或服務在一般類及其各個特殊類中具有不同的語義。
例如:"幾何圖形"的"繪圖"方法,"橢圓"和"多邊形"都是"幾何圖"的子類,其"繪圖"方法功能不同。
㈥ Java面向對象的特徵是什麼
您好,對於你的遇到的問題,我很高興能為你提供幫助,我之前也遇到過喲,以下是我的個人看法,希望能幫助到你,若有錯誤,還望見諒!。展開全部
計算機軟體系統是現實生活中的業務在計算機中的映射,而現實生活中的業務其實就是一個個對象協作的過程。面向對象編程就是按現實業務一樣的方式將程序代碼按一個個對象進行組織和編寫,讓計算機系統能夠識別和理解用對象方式組織和編寫的程序代碼,這樣就可以把現實生活中的業務對象映射到計算機系統中。
面向對象的編程語言有封裝、繼承 、抽象、多態等4個主要的特徵。
1封裝:
封裝是保證軟體部件具有優良的模塊性的基礎,封裝的目標就是要實現軟體部件的「高內聚、低耦合」,防止程序相互依賴性而帶來的變動影響。在面向對象的編程語言中,對象是封裝的最基本單位,面向對象的封裝比傳統語言的封裝更為清晰、更為有力。面向對象的封裝就是把描述一個對象的屬性和行為的代碼封裝在一個「模塊」中,也就是一個類中,屬性用變數定義,行為用方法進行定義,方法可以直接訪問同一個對象中的屬性。通常情況下,只要記住讓變數和訪問這個變數的方法放在一起,將一個類中的成員變數全部定義成私有的,只有這個類自己的方法才可以訪問到這些成員變數,這就基本上實現對象的封裝,就很容易找出要分配到這個類上的方法了,就基本上算是會面向對象的編程了。把握一個原則:把對同一事物進行操作的方法和相關的方法放在同一個類中,把方法和它操作的數據放在同一個類中。
例如,人要在黑板上畫圓,這一共涉及三個對象:人、黑板、圓,畫圓的方法要分配給哪個對象呢?由於畫圓需要使用到圓心和半徑,圓心和半徑顯然是圓的屬性,如果將它們在類中定義成了私有的成員變數,那麼,畫圓的方法必須分配給圓,它才能訪問到圓心和半徑這兩個屬性,人以後只是調用圓的畫圓方法、表示給圓發給消息而已,畫圓這個方法不應該分配在人這個對象上,這就是面向對象的封裝性,即將對象封裝成一個高度自治和相對封閉的個體,對象狀態(屬性)由這個對象自己的行為(方法)來讀取和改變。一個更便於理解的例子就是,司機將火車剎住了,剎車的動作是分配給司機,還是分配給火車,顯然,應該分配給火車,因為司機自身是不可能有那麼大的力氣將一個火車給停下來的,只有火車自己才能完成這一動作,火車需要調用內部的離合器和剎車片等多個器件協作才能完成剎車這個動作,司機剎車的過程只是給火車發了一個消息,通知火車要執行剎車動作而已。
抽象:
抽象就是找出一些事物的相似和共性之處,然後將這些事物歸為一個類,這個類只考慮這些事物的相似和共性之處,並且會忽略與當前主題和目標無關的那些方面,將注意力集中在與當前目標有關的方面。例如,看到一隻螞蟻和大象,你能夠想像出它們的相同之處,那就是抽象。抽象包括行為抽象和狀態抽象兩個方面。例如,定義一個Person類,如下:
class Person
{
String name;
int age;
}
人本來是很復雜的事物,有很多方面,但因為當前系統只需要了解人的姓名和年齡,所以上面定義的類中只包含姓名和年齡這兩個屬性,這就是一種抽像,使用抽象可以避免考慮一些與目標無關的細節。我對抽象的理解就是不要用顯微鏡去看一個事物的所有方面,這樣涉及的內容就太多了,而是要善於劃分問題的邊界,當前系統需要什麼,就只考慮什麼。
繼承:
在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並可以加入若干新的內容,或修改原來的方法使之更適合特殊的需要,這就是繼承。繼承是子類自動共享父類數據和方法的機制,這是類之間的一種關系,提高了軟體的可重用性和可擴展性。
多態:
多態是指程序中定義的引用變數所指向的具體類型和通過該引用變數發出的方法調用在編程時並不確定,而是在程序運行期間才確定,即一個引用變數倒底會指向哪個類的實例對象,該引用變數發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定。因為在程序運行時才確定具體的類,這樣,不用修改源程序代碼,就可以讓引用變數綁定到各種不同的類實現上,從而導致該引用調用的具體方法隨之改變,即不修改程序代碼就可以改變程序運行時所綁定的具體代碼,讓程序可以選擇多個運行狀態,這就是多態性。多態性增強了軟體的靈活性和擴展性。例如,下面代碼中的UserDao是一個介面,它定義引用變數userDao指向的實例對象由factory.getDao()在執行的時候返回,有時候指向的是UserJdbcDao這個實現,有時候指向的是UserHibernateDao這個實現,這樣,不用修改源代碼,就可以改變userDao指向的具體類實現,從而導致userDao.insertUser()方法調用的具體代碼也隨之改變,即有時候調用的是UserJdbcDao的insertUser方法,有時候調用的是UserHibernateDao的insertUser方法:
UserDao userDao = factory.getDao();
userDao.insertUser(user);
如果滿意請給分哦!非常感謝您的耐心觀看,如有幫助請採納,祝生活愉快!謝謝!
㈦ 北大青鳥設計培訓:Java面向對象的四個特徵
1.抽象:抽象——就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。
(就是把現實世界中的某一類東西,提取出來,用程序代碼表示,抽象出來一般叫做類或者介面。
)抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。
航天橋java培訓http://www.kmbdqn.cn/認為抽象包括兩個方面,一是數據抽象,二是過程抽象。
數據抽象——就是用代碼的形式表示現時世界中一類事物的特性,就是針對對象的屬性。
比如建立一個鳥這樣的類,鳥都有以下屬性:一對翅膀、兩只腳、羽毛等。
抽象出來的類都是鳥的屬性,或者成員變數。
過程抽象——就是用代碼形式表示現實世界中事物的一系列行為,就是針對對象的行為特徵。
比如鳥會飛、會叫等。
抽象出來的類一般都是鳥的方法。
2.繼承:繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。
對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。
新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。
派生類可以從它的基類那裡繼承方法和實例變數,並且類可以修改或增加新的方法使之更適合特殊的需要。
因此可以說,繼承是為了重用父類代碼,同時為實現多態性作準備。
3.封裝:封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。
面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的介面訪問其他對象。
封裝隱藏了類的內部實現機制,從而可以在不影響使用者的前提下改變類的內部結構,同時保護了數據。
4.多態性:多態性是指允許不同類的對象對同一消息作出響應。
多態性包括參數化多態性和包含多態性。
多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
總的來說,方法的重寫、重載與動態鏈接構成多態性。
Java引入多態的概念原因之一就是彌補類的單繼承帶來的功能不足。
(為規避C++中多繼承造成的復雜繼承問題,java採用單繼承。
)動態鏈接——對於父類中定義的方法,如果子類中重寫了該方法,那麼父類類型的引用將會調用子類中的這個方法,這就是動態鏈接。
注意:繼承與重載:一是子類與父類的關系,二是重載方法的調用問題。
子類對象可以直接當成父類對象使用,但反過來就不可以。
舉例來說,人是父類,學生是人的子類,所以學生對象一定具備人對象的屬性,但是人對象就未必具有學生對象的特性。
所以學生對象可以當做人對象來使用,但是人對象就不能當做學生對象使用。
注意當把子類對象當成父類對象使用時,子類對象將失去所有的子類特性,只保留與父類同名的屬性和方法(同名方法不僅是函數名相同,而且參數類型也要一樣,否則不予保留)。
此時可以對父類方法進行重寫。
一個類中如果定義了重載的方法,則系統在調用方法時,會根據參數的類型自動選擇調用合適的方法。
㈧ 在JAVA中什麼是面向對象的程序設計方法有哪些主要特徵
答:Java是面向對象的程序設計語言,從面向對象這個角度看,體現了如下三個特點:
①封裝性
面向對象的程序設計語言都是把數據和處理數據的操作結合在一起而構成一個整體,這就是對象。對象的使用者只能看到對象的外部特性,比如,其主要功能、如何調用等,而看不到內部如何實現這些功能。作為面向對象的程序設計語言,程序中的數據就是變數,程序對數據作處理則稱為方法。變數和方法都被封裝在對象中。所以,一個對象就是變數和方法的集合,其中變數表明這個對象的狀態,方法實現這個對象所具有的行為,而且在程序中將這些變數和方法進行封裝,使它們成為一個模塊,再用一個名字來代表這個模塊。這樣,以後的更高層的程序設計中,就不必關心某個對象的行為到底是怎樣實現的。可見,將對象封裝就是為了使模塊盡可能少地展現其內部細節,而只是以一種界面來面向外部。
對象的封裝性減少了程序各部分之間的依賴,使程序的復雜性降低,而可靠性提高,並便於修改。
②繼承性
面向對象的程序設計中,對象是從類創建出來的,這一點即將在下面的解答中說明。在
Java中,許多類組成層次化結構。一個類的上一層稱為父類,而下一層稱為子類。一個類可以繼承其父類的變數和方法,而且這種繼承具有傳遞性。就是說,一個類可以繼承其上一層和其再上一層的變數和方法。這種可傳遞的繼承性使得下層多個相似的對象可以共享上層類的數據和程序代碼,而子類又可以在繼承父類的基礎上增添新的內容和功能。這種代碼共享和代碼可增添的繼承特性使Java既靈活方便又提高效率。
③通信相關性
一個對象往往涉及多個行為。體現在程序設計中,一個對象往往包含多個方法,每一個方法對應一個行為。所以,一個對象完成某個動作也就是程序執行相應的方法。於是,就涉及對象之間通過交互來實現復雜的行為,這叫對象之間的通信。
利用通信可以實現一個對象往另一個對象的信息傳遞。信息傳遞涉及三個要素;一是信息接收對象;二是接收對象中用哪個方法完成指定的動作;三是此方法需要的參數。由於信息傳遞的要素非常清晰,所以用在編程中也將很方便。
這種通信相關性使許多復雜功能得以實現,卻又能避免編程的錯綜復雜。