第八章物件导向.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 物件導向 物件導向 在物件導向理論眼中的軟體系統,並沒有所謂資料與程序的分野;而是由一群同心協力的物件,合力組織並完成所有的工作。每一項工作都分層負責,同時每個獨立的物件都可以視為分工階層的一員,而有其適當的關係與聯繫,以訊息來溝通,達成模擬世界、加以處理的目的。故在物件導向理論中認為,一個物件導向程式語言應該具有的特性為: 抽象資料型態(abstract data type) 封裝性(encapsulation)、資訊隱藏(data hiding) 繼承性(inheritance) 多載(overloading)、覆載(overriding) 動態連結(dynamic binding) 多型(polymorphism) 在下面的章節裡,我們會一一介紹這些特性。 抽象資料型態(abstract data type) 抽象資料型態是用以表達外界真實事物的抽象敘述,這種抽象資料型態有時稱為物件(object)。它必須有一個資料結構(類別)來儲存資料,並且有狀態與行為;更可以被創造、消滅、以及識別。 在Java語言中,物件是以下列的方式宣告: 格式: 類別修飾詞 class 類別名稱 { 類別變數(屬性); 類別的行為; } 範例一: // smallobj.java // demonstrates a small, simple object import java.io.*; public class SmallObj { int somedata; SmallObj() { } public void setdata(int d) { somedata = d; } public void showdata() { System.out.println(“\nData is ” + somedata); } } public class SmallObjDemo { public static void main(String args[]) { SmallObj s1 = new SmallObj(); SmallObj s2 = new SmallObj(); s1.setdata(1066); s2.setdata(1776); s1.showdata(); s2.showdata(); } } 類別(class)與實例(instance) 在Java語言中,類別是用來定義物件的特性及行為,所以只有定義類別,是無法使用物件的。如同變數的宣告,類別的變數我們稱為實例,也是我們真正處理物件的地方。從另一個角度來說,類別類似一個模子,而實例是模子做出來的物品。一般而言,一個物件必須合乎下列條件: 物件必須有一個資料結構來存放資料 物件必須有狀態及行為 物件必須可以被識別 物件必須可以被創造及消滅 由上面所敘,我們可以總結Java語言中Class的功能: class具有一個資料結構。 class有建構函數,用來建造物件。 class被視同為資料型態,每一個物件和一般資料一樣,能夠自然地被識別。 class有(成員)函數,可以建立物件行為。 class另外有存取等級的管制可以實現資訊隱藏的概念。 message 與 method Message是物件之間用來溝通的主要工具,所以我們可以大略的把message看成是訊息的意思。另一個名詞method就是與資料一起,被包裝在物件的操作程序(類似於函數)。每個method都對應一個message,只要一種message被送到物件來,物件就會有相對的method動作。 message(or method)呼叫 在物件中,呼叫message的方法如下。 範例: s1.setdata(1066); s2.setdata(1776); s1.showdata(); // member function calling s2.showdata(); // member function calling 範例二: // widget part as an object import java.io.*; class Part // specify an object { int modelnumber; int partnumber; float cost; Part() {} void setpart(int mn, int pn, float c) // set data { modelnumber = mn; partnumber = pn; cost

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档