溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java面向?qū)ο蟾攀?/h1>
發(fā)布時(shí)間:2020-08-16 21:34:34 來源:ITPUB博客 閱讀:118 作者:azz 欄目:編程語言
Java面向?qū)ο蟾攀鯷@more@]  (如今的程序領(lǐng)域,大家都在說,面向?qū)ο驩OP,但是真正能理解面向?qū)ο蟮暮x的程序員卻很少,究竟什么是對象,怎樣面向?qū)ο?

  一.面向?qū)ο螅?BR>
  1.何謂對象:在面向?qū)ο蟪绦蛟O(shè)計(jì)中,我們將問題空間中的元素以及他們在方案空間中的的表示物稱作對象(object)
   Alan Kay總結(jié)了smalltalk中對象的5大基本特征:
  所有的東西都是對象。
  程序是一大堆對象的集合,他們通過消息傳遞,各個(gè)對象之間知道要做些什么。
  每個(gè)對象都分配有自己的存儲空間,可容納其他對象。
  每個(gè)對象都有一個(gè)類型。
  同一類的所有對象能接收相同的消息。
   -----而所有的編程語言的最終目的是提供一種抽象方法----

  2.對象的接口:我們向?qū)ο蟀l(fā)出請求是通過它的接口定義的,對象的類型決定了它的接口形式。

  3.OOP中唯一關(guān)心的: 就是接口是什么,就像汽車的發(fā)動機(jī)一樣,我們不必要知道它的結(jié)構(gòu)是什么,只要它能工作就行了。所有的程序是由一定的屬性(數(shù)據(jù))和行為(方法)組成的,不同的對象訪問通過函數(shù)調(diào)用來完成,對象間的所有交流都是通過方法調(diào)用,通過對封裝數(shù)據(jù)對象,很大程度上提高復(fù)用率。

  4.對象的3個(gè)主要特征:
   behavior—說明這個(gè)對象能做什么。
   State—當(dāng)對象施加方法時(shí)對象的反映。
   Identity---與其他相似行為對象的區(qū)分標(biāo)志,每一個(gè)對象有唯一的indentity, 而這3者是相互影響的。

  5.面向?qū)ο笾凶钪匾乃枷?就是類,類是模板是藍(lán)圖,從類中構(gòu)造一個(gè)對象,即創(chuàng)建了一個(gè)類的實(shí)例。(類好比一個(gè)建材市場,其中有許多子類--各種各樣的裝飾材料,而我們裝修自己的房子就要選擇我們需要的材料,(為了建立我們自己的程序,我們必須選 擇我們需要的類)這個(gè)比喻可以很形象的解釋類是什么。

  6.類之間的關(guān)系:
   依賴關(guān)系:use-a A類中的一個(gè)方法操作了另一個(gè)類中的對象。
   聚合關(guān)系:has-a A類中的對象包含B類的對象。
   繼承關(guān)系:is-a A繼承了B類,此時(shí)A類不僅有了B類的方法,還加入了自己的方法。以便我們創(chuàng)建我們自己需要的對象。
  Java中定義的每一個(gè)類都必須繼承另一個(gè)類,使用關(guān)鍵字extends,如果一個(gè)類在定義中不現(xiàn)實(shí)使用關(guān)鍵字extends,這個(gè)類就會隱式繼承Object類。Object類又叫根超類,或基類。,我們從根超類繼承來的叫子類。Java中每個(gè)類都是根超類的子類。

  8.接口(interface)規(guī)定了可對特定的對象發(fā)出哪些請求。

  9.繼承=重新使用接口:創(chuàng)建出一個(gè)數(shù)據(jù)類型后,當(dāng)需要新建立一個(gè)數(shù)據(jù)類型去實(shí)現(xiàn)相同的功能,是很沒有意義的一件事,此時(shí)對其克隆后,再根據(jù)情況改進(jìn)實(shí)現(xiàn)自己的目的就是繼承。

  10.封裝:就是把數(shù)據(jù)和行為結(jié)合在一起在一個(gè)包中,并對對象使用者隱藏?cái)?shù)據(jù)的實(shí)現(xiàn)過程。Java用3個(gè)關(guān)鍵字來設(shè)置邊界,從而進(jìn)行對數(shù)據(jù)的隱藏。Public(共有)的定義任何人都可使用.private(私有)意味著除你自己,類型創(chuàng)建者及那個(gè)類型的內(nèi)部函數(shù)成員可以訪問外其他任何人使用都會產(chǎn)生錯(cuò)誤。Friendly(友好)
  意味在包(package)中是可以訪問的。(以上過程也可叫方案隱藏)

  11.引用(Handle)操控對象:
   當(dāng)創(chuàng)建一個(gè)引用時(shí)必須要對其進(jìn)行初始化
   例: String s=”happy”(未建立連接)
   String s=new string(“happy”)與一個(gè)新的對象連接使用new 。此句建立了一個(gè)引用,并且連接引用并初始化對象 賦值字符串“happy”.

  12.對象的創(chuàng)建及存在時(shí)間:數(shù)據(jù)存放的地點(diǎn)
   1:寄存器-速度快,數(shù)量少,在cpu內(nèi)部,我們對寄存器沒有控制權(quán)。
   2:堆棧:駐留長規(guī)內(nèi)存中,堆棧指針下移建立新的內(nèi)存,上移釋放內(nèi)存。
   3:堆:常用內(nèi)存池,保存對象,有極大的靈活性,java的數(shù)據(jù)就存放在此,但是要以時(shí)間及效率為代價(jià)。Java的對象建立是在程序運(yùn)行時(shí)才決定。而c++是在設(shè)計(jì)時(shí)建立對象。
  對象的生存時(shí)間(lifetime)java提出的垃圾收集器可以很好的發(fā)現(xiàn)無須再用的對象,使用GC(grabage collector)垃圾收集器。清除對象,釋放內(nèi)存。
  為此我們就要付出一定的運(yùn)行期的開銷。

  13.在此我們就會有這樣一個(gè)印象,一個(gè)程序只是一系列對象的集合,他們的方法將其他對象作為自己的變量使用.

  14.主要類型: java的主要類型有:boolean,char,byte,short,int,long,float,double,void.這些主類型的大小都不隨機(jī)器的結(jié)構(gòu)變化而變化,提供了java很好的可移植性.

  15.字段方法:字段又叫數(shù)據(jù)成員,成員函數(shù)又叫方法,java的全部工作就是定義類,制作累得對象及發(fā)送消息.

  16.一個(gè)程序只是一系列對象的集合,他們的方法將其他的對象作為自己的變量使用,而且將消息發(fā)給那些對象.

  17.名字的可見性:為了使名字不重復(fù),作者可以定義自己的庫,一般用自己域名的倒寫形式 如: COM.:Leeak.utility.foidles

  18.static關(guān)鍵字:即使沒有創(chuàng)建對象,也需要一愕能調(diào)用的方法,此時(shí)可以使用static

  19.java.lang默認(rèn)自動的導(dǎo)入每個(gè)java程序中

  20.OOP中對象使對屬性和方法的封裝,對象具有信息的隱蔽的性質(zhì),對細(xì)節(jié)的隱藏,對象只需要知道去這樣做,而不知道如何做的細(xì)節(jié),類的方法應(yīng)謹(jǐn)慎控制對java數(shù)據(jù)的訪問,可以用get讀取方法,用set修改方法.

  21:pakage:Java API中每個(gè)類和接口屬于一個(gè)特定的包,包實(shí)際上市對類和接口進(jìn)行組織的目錄結(jié)構(gòu),提供了一種軟件復(fù)用機(jī)制.

  22.創(chuàng)建可復(fù)用的類得步驟:1.定義一個(gè)public類
   2.選擇一個(gè)包名,并把pakage語句加到可復(fù)用的類的源碼中.
   3.編譯這個(gè)類.
   4.把可復(fù)用的類導(dǎo)入其他程序中即可.
  23.java中提出在類定義的括號外的僅有2個(gè)語句,pakage和import.

  24.軟件的復(fù)用性,軟件的復(fù)用性就是利用紫的已有的,定義良好的的經(jīng)過仔細(xì)測試的文檔清晰的可移植的易于獲得的軟件構(gòu)件開發(fā)新的軟件.

  以上就是java面向?qū)ο蟮囊恍┗拘g(shù)語的概述,其中的有些部分可以擴(kuò)展的更深,看過think in java的 朋友就會有此種感覺.此文章向?qū)Τ鯇W(xué)者闡述了面向?qū)ο蟮幕靖拍?對已是java程序員的朋友可以對他們的基本知識做以回顧.

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI