- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章物件导向基本观念
* 第6章 物件導向基本觀念 6-1 物件導向概論 6-2 Java方法 6-3 建構式概論 6-4 物件陣列 6-5 繼承 6-6 Object類別 6-1 物件導向概論 物件導向讓程式具體化 如果以傳統方式來記錄書籍資料,最直覺的方式就是畫表格,物件導向的觀念,就是將1本書以1個物件來表示,也同樣要將該物件所儲存的資訊填到表格內,只不過這張表格是放在記憶體裡。 建立表格的順序與建立物件的順序其實是一致的 建立多個物件以儲存多本書籍資訊。一個物件就代表一本書的資訊。 建立多列資料以記錄多本書籍資訊。一列資料就代表一本書的資訊。 2. 定義類別與屬性 定標題與欄位名稱 1. 建立物件 建立表格 建立步驟 步驟1:定義類別與屬性 class Book{ //Book是1個自訂類別 String name; //書名 double price; //定價 String author; //作者 } 步驟2:建立1個物件 /*「new Book()」代表會在記憶體建立1個新的實體空間來儲存Book定義的3個屬性;而book1儲存著實體的記憶體位址,這觀念與陣列相同。 */ Book book1 = new Book(); book1.name = Java程式設計; book1.price = 580.0; book1.author = 張搧風; 使用方法達到重複利用 屬性與方法是類別的2大成員(Member)。一旦方法定義好,即使物件不同,也可以透過呼叫相同的方法以達到運算式的重複利用。 //定義好show()方法,內容如下: void show(){ //void代表這個方法沒有回傳值 System.out.println(書名: + name); System.out.println(定價: + price); System.out.println(作者: + author); } //不論有幾個Book物件,直接呼叫show()方法即可輸出書籍資訊 book1.show(); //輸出book1資訊 book2.show(); //輸出book2資訊 ... book10.show(); //輸出book10資訊 範例說明 第14行:建立book1物件,並在第15~17行設定該物件的屬性值。 第18行:呼叫第5行show()方法,將book1物件的屬性輸出。 輸出結果 書名:Java程式設計 定價:580.0 作者:張搧風 注意: 1個Java檔案內可以有好幾個類別,但只有1個類別可以冠上public修飾詞,其名稱必須當作Java檔的主檔名。編譯後所有的類別都會產生對應的類別檔。 6-2 Java方法 Java的方法,可視需求設定參數或回傳值。如果有回傳值,就必須遵從下列3點規則: 設定回傳類型 使用return關鍵字 原呼叫式會被回傳值替換 黃彬華著 碁峰出版 範例說明 第10行:第11行return後面的值要相容於回傳類型double(所以整數也可以)。呼叫getPrice()方法時必須傳遞1個相容於double類型的參數。 第22行:呼叫第10行的getPrice()方法,並傳遞0.9,第11行將運算結果回傳到第22行,然後輸出。 輸出結果 書名:Java程式設計 定價:580.0 作者:張搧風 售價:522.0 Java的參數傳遞可分成傳值(Pass by Value)與傳址(Pass by Reference): 傳值:傳遞基本類型 傳址:傳遞參照類型 範例說明 第13行:屬於傳值。d和p各有自己的值,所以互不影響。 第14行:屬於傳址。b與book1都指向同一個物件。 輸出結果 p = 580.0 book1.price = 522.0 方法分成2個部分: 方法簽章 方法內容 void setPrice(double d) //方法簽章 {d *= 0.9;} //方法內容 呼叫方法時會比對方法簽章的3個部分: 名稱 參數個數 參數資料類型 1個類別內存在2個以上名稱相同的方法,稱作方法多載化(Overloading) 不定參數的處理 如果無法確定呼叫方法時會傳遞幾個參數,就無法確切定義這個方法的參數個數,可以使用陣列來解決這種問題。 範例說明 第12行:將twoNames陣列傳遞給names參數。 第14行:傳遞的是1個字串陣列,不管該陣列元素個數有多少,showName()方法都可以承接。 輸出結果 購買的書籍:Java程式設計 JSP程式設計 購買的書籍:C++概論 資料庫概論 網路概論 參數列表(Varargs) 專門用來處理參數個數不定的情形,比陣列更直覺。不過編譯器還是會將參數列表視為陣列。 範例說明 第2行:names是參數列表的參數,會
文档评论(0)