9-1物件导向程式设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9-1物件导向程式设计

9-1 物件導向的程式設計;非程序導向 ;程序導向 ;物件導向 ;既然真實世界是以物件描述物種,程式設計亦不應侷限在狹隘的方法,而是應以物件的宏觀角度撰寫程式,所以基於物件導向的新觀念,程式開發工具即制定一種新的型別,此型別稱為類別,每一類別均有一些屬性與行為。而Java的類別,則採用Class宣告,其內部成員則含資料(Data)與方法(Method),其中資料代表屬性,方法(Method)代表行為。其次,類別變數即稱為物件(附註:物件亦稱為類別的實現、類別的樣例(Instance)實體或個別。這些類別(包含軟體廠商及自己公司所開發的類別)的集合即稱為類別庫,每一類別都有屬於自己的方法,也就是我們已將眾多的函式依照不同的類別分類存放,如此可解決目前日益龐大的函式命名與函式取用的困擾。 例如,程序導向的時代,關於開門的函式即有電梯開門、汽車開門、房子開門等數種開門的方法,如此徒增命名與取用的困擾,但在物件導向的領域裏,開門這個方法是附在相對應的類別裏,於電梯類別有電梯的開門,汽車類別有汽車的開門,房子類別裏有房子的開門方法,大家的方法名稱都叫開門,撰寫程式時也是電梯.開門,汽車.開門,或是房子.開門(物件與方法、屬性之間以點(.)運算子連結),如此既可簡化程式的撰寫,亦可減少程式出錯的機會(註:在程序導向的領域裏,所有的函式都集中,就有可能用錯方法。例如,用電梯開門的方法去開汽車的門,結果當然是錯的)。其次,物件導向亦提出了三個觀念,分別是物件的封裝(Encapsulation)、繼承(Inheritance)及多型(Polymorphism),以解決程序導向的不足。 ;封裝 ;繼承 ;多型 ;9-2 類別與物件的設計 ;類別是由資料成員與方法成員(方法成員有些書譯為函式成員)組合而成,類別的宣告語法如下: [存取範圍修飾字] class 類別名稱? [extends 繼承類別名稱] [implements 介面名稱]{ [存取範圍修飾字] 資料型別? 資料名稱1[=初值設定]; ? [存取範圍修飾字] 資料型別? 資料名稱2[=初值設定]; [存取範圍修飾字] 資料型別? 資料名稱3[=初值設定]; [存取範圍修飾字] 傳回值資料型別? 方法名稱1(參數列)[throws 例外名稱1]; [存取範圍修飾字] 傳回值資料型別? 方法名稱2(參數列)[throws 例外名稱2]; [存取範圍修飾字] 傳回值資料型別? 方法名稱3(參數列)[throws 例外名稱3]; } 以上語法相當複雜,不適合初學者學習,筆者簡化如下: class 類別名稱{ 資料型別? 資料名稱1; 資料型別? 資料名稱2; 傳回值資料型別? 方法名稱1(); 傳回值資料型別? 方法名稱2(); } ;以下程式片段即定義一個類別Pass,共含有二個資料成員score、result及一個方法成員dispose()。此類別的功能是判斷資料成員score是否大於等於60,若是大於等於60,則設定資料成員result為“及格”,否則為“不及格”。 class Pass { //資料成員 int score; String result; //方法成員 void dispose() { result=不及格; if (score=60) result=及格; } } ;類別的樣例化(lnstantiating) ;物件的宣告 ;物件的新增 ;成員的存取 ;範例 9-2a;套件(Package);建構子(Constructors);9-2b;建構子多載;此時於程式執行階段,即可依照參數的數量或型別而執行對應的建構子。例如, Pass pa1=new Pass(); 即是執行Pass()建構子。又例如, Pass pa2=new Pass(88); 即是執行Pass(int)建構子。 ;範例9-2c; 預設的建構子 ;解構子(Destructors) ;存取範圍修飾字(Modifier) ;public ;private ;私有成員的存取 ;因此,只有Pass類別內可以存取score與result,若要在外部存取score與result,則應實作setScore()、getScore()及getResult()等方法,如以下程式。 public int getScore() { return score; } public void setScore(int value) { score=value; }

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档