轉載>

          ?[轉帖]Java面向對象概述
          Java面向對象概述????leeak(原作)

          (如今的程序領域,大家都在說,面向對象OOP,但是真正能理解面向對象的含義的程序員卻很少,究竟什么是對象,怎樣面向對象)
          一.面向對象:
          1.何謂對象:在面向對象程序設計中,我們將問題空間中的元素以及他們在方案空間中的的表示物稱作對象(object)
          ?Alan?Kay總結了smalltalk中對象的5大基本特征:
          所有的東西都是對象。
          程序是一大堆對象的集合,他們通過消息傳遞,各個對象之間知道要做些什么。
          每個對象都分配有自己的存儲空間,可容納其他對象。
          每個對象都有一個類型。
          同一類的所有對象能接收相同的消息。
          ?-----而所有的編程語言的最終目的是提供一種抽象方法----
          2.對象的接口:我們向對象發出請求是通過它的接口定義的,對象的類型決定了它的接口形式。
          3.OOP中唯一關心的:?就是接口是什么,就像汽車的發動機一樣,我們不必要知道它的結構是什么,只要它能工作就行了。所有的程序是由一定的屬性(數據)和行為(方法)組成的,不同的對象訪問通過函數調用來完成,對象間的所有交流都是通過方法調用,通過對封裝數據對象,很大程度上提高復用率。
          4.對象的3個主要特征:
          ??????behavior—說明這個對象能做什么。
          ??????State—當對象施加方法時對象的反映。
          ??????Identity---與其他相似行為對象的區分標志,每一個對象有唯一的indentity,?而這3者是相互影響的。
          5.面向對象中最重要的思想?就是類,類是模板是藍圖,從類中構造一個對象,即創建了一個類的實例。(類好比一個建材市場,其中有許多子類--各種各樣的裝飾材料,而我們裝修自己的房子就要選擇我們需要的材料,(為了建立我們自己的程序,我們必須選?擇我們需要的類)這個比喻可以很形象的解釋類是什么。
          6.類之間的關系:
          ????????依賴關系:use-a??A類中的一個方法操作了另一個類中的對象。
          ????????聚合關系:has-a??A類中的對象包含B類的對象。
          ????????繼承關系:is-a???A繼承了B類,此時A類不僅有了B類的方法,還加入了自己的方法。以便我們創建我們自己需要的對象。
          Java中定義的每一個類都必須繼承另一個類,使用關鍵字extends,如果一個類在定義中不現實使用關鍵字extends,這個類就會隱式繼承Object類。Object類又叫根超類,或基類。,我們從根超類繼承來的叫子類。Java中每個類都是根超類的子類。

          8.接口(interface)規定了可對特定的對象發出哪些請求。
          9.繼承=重新使用接口:創建出一個數據類型后,當需要新建立一個數據類型去實現相同的功能,是很沒有意義的一件事,此時對其克隆后,再根據情況改進實現自己的目的就是繼承。

          10.封裝:就是把數據和行為結合在一起在一個包中,并對對象使用者隱藏數據的實現過程。Java用3個關鍵字來設置邊界,從而進行對數據的隱藏。Public(共有)的定義任何人都可使用.private(私有)意味著除你自己,類型創建者及那個類型的內部函數成員可以訪問外其他任何人使用都會產生錯誤。Friendly(友好)
          意味在包(package)中是可以訪問的。(以上過程也可叫方案隱藏)
          11.引用(Handle)操控對象:
          ????當創建一個引用時必須要對其進行初始化
          ??例:?String?s=”happy”(未建立連接)
          ?????String?s=new?string(“happy”)與一個新的對象連接使用new?。此句建立了一個引用,并且連接引用并初始化對象?賦值字符串“happy”.
          12.對象的創建及存在時間:數據存放的地點
          ???????1:寄存器-速度快,數量少,在cpu內部,我們對寄存器沒有控制權。
          ???????2:堆棧:駐留長規內存中,堆棧指針下移建立新的內存,上移釋放內存。
          ??????3:堆:常用內存池,保存對象,有極大的靈活性,java的數據就存放在此,但是要以時間及效率為代價。Java的對象建立是在程序運行時才決定。而c++是在設計時建立對象。
          ?對象的生存時間(lifetime)java提出的垃圾收集器可以很好的發現無須再用的對象,使用GC(grabage?collector)垃圾收集器。清除對象,釋放內存。
          為此我們就要付出一定的運行期的開銷。
          13.在此我們就會有這樣一個印象,一個程序只是一系列對象的集合,他們的方法將其他對象作為自己的變量使用.
          14.主要類型:?java的主要類型有:boolean,char,byte,short,int,long,float,double,void.這些主類型的大小都不隨機器的結構變化而變化,提供了java很好的可移植性.
          15.字段方法:字段又叫數據成員,成員函數又叫方法,java的全部工作就是定義類,制作累得對象及發送消息.
          16.一個程序只是一系列對象的集合,他們的方法將其他的對象作為自己的變量使用,而且將消息發給那些對象.
          17.名字的可見性:為了使名字不重復,作者可以定義自己的庫,一般用自己域名的倒寫形式?如:?COM.:Leeak.utility.foidles
          18.static關鍵字:即使沒有創建對象,也需要一愕能調用的方法,此時可以使用static
          19.java.lang默認自動的導入每個java程序中
          20.OOP中對象使對屬性和方法的封裝,對象具有信息的隱蔽的性質,對細節的隱藏,對象只需要知道去這樣做,而不知道如何做的細節,類的方法應謹慎控制對java數據的訪問,可以用get讀取方法,用set修改方法.

          21:pakage:Java?API中每個類和接口屬于一個特定的包,包實際上市對類和接口進行組織的目錄結構,提供了一種軟件復用機制.
          22.創建可復用的類得步驟:1.定義一個public類
          ???????????????????????????????????????????????2.選擇一個包名,并把pakage語句加到可復用的類的源碼中.
          ???????????????????????????3.編譯這個類.
          4.把可復用的類導入其他程序中即可.
          23.java中提出在類定義的括號外的僅有2個語句,pakage和import.
          24.軟件的復用性,軟件的復用性就是利用紫的已有的,定義良好的的經過仔細測試的文檔清晰的可移植的易于獲得的軟件構件開發新的軟件.

          以上就是java面向對象的一些基本術語的概述,其中的有些部分可以擴展的更深,看過think?in?java的?朋友就會有此種感覺.此文章向對初學者闡述了面向對象的基本概念.對已是java程序員的朋友可以對他們的基本知識做以回顧.


          http://www.csdn.net/Develop/article/22/22198.shtm

          posted on 2005-09-15 14:53 扭轉乾坤 閱讀(187) 評論(0)  編輯  收藏 所屬分類: JAVA使用技巧

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類(31)

          隨筆檔案(30)

          文章分類(32)

          文章檔案(33)

          相冊

          PHP小站-首頁

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宿州市| 丰台区| 马龙县| 灵寿县| 鄂温| 淳化县| 洞头县| 丰顺县| 海城市| 乌什县| 罗源县| 屏南县| 姚安县| 阿巴嘎旗| 县级市| 南江县| 类乌齐县| 伊通| 沙雅县| 腾冲县| 茶陵县| 新郑市| 九台市| 彰化市| 潞城市| 犍为县| 宁德市| 民丰县| 灵璧县| 格尔木市| 许昌县| 循化| 正安县| 普陀区| 黄石市| 泸水县| 论坛| 太仆寺旗| 金华市| 依安县| 舞阳县|