网站大量收购独家精品文档,联系QQ:2885784924

使用类别名称存取static成员变数.PPT

  1. 1、本文档共109页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用类别名称存取static成员变数

物件的建構 第 9 章 本章重點 9 - 1 建構方法 (Cons t ructor) 9 - 2 封裝與資訊隱藏 9 - 3 static 共享成員變數 9 - 4 綜合演練 前言 以前一章範例程式中所用的汽車類別為例, 每次建立物件後, 都還要在 main() 方法中另行設定物件的成員變數: 前言 如果可以將建立物件與設定物件狀態的動作結合在一起, 會有以下優點: 避免忘記設定物件初始狀態, 這種錯誤看起來雖然是小事, 但往往在程式出錯時也最容易忽略。由於編譯器無法猜測物件在產生後是否需要進行任何初始化的動作, 因此無法像是警告您變數尚未設定初值的方式提出警示。 前言 更接近自然界的物件。舉例來說, 小嬰孩必定在出生前就決定了膚色與髮色, 而不會是先出生, 然後才顯現膚色或是髮色;相同的道理, 舞台劇上場的演員也不會先出場, 然後請觀眾等一下, 在台上上妝之後才開始演出。既然如此, 程式中的各個物件也應該在產生的同時就設定好初始狀態, 直接參與程式的執行。 為了解決上述的問題, Java 這一類物件導向的程式語言便提供一個特別的機制, 來幫物件設定初始狀態, 而這也就是本章的主題。 9 - 1 建構方法 (Cons t ructor) 建構方法就是物件導向程式語言對於物件初始化的解決方案。顧名思義, 建構方法是一個方法 (method), 比較特別的是:它是在建立物件時由系統自動呼叫, 以建構物件初始的狀態, 因此名之為建構方法。也因為在物件產生時會自動呼叫建構方法, 因此使用 new 運算子時, 才必須在類別的名稱之後加上一對小括號, 這對小括號的意義就是呼叫建構方法。 建構方法 (Cons t ructor) 9-1-1 預設建構方法 (Defau l t Constr ucor) 9-1-2 自行定義建構方法 無參數的建構方法 具有參數的建構方法 9-1-3 建構方法的多重定義 (Overloading) 9-1-4 this 保留字 9-1-1 預設建構方法 (Defau l t Constr ucor) 建構方法的名稱與類別名稱相同, 如果類別之中並未定義任何建構方法,則 Java 編譯器會自動幫類別定義一個預設建構方法, 例如: 預設建構方法 (Defau l t Constr ucor) 在上面這個例子中, Test 類別就沒有定義任何的建構方法, 因此 Java 編譯器便會自動定義一個預設的建構方法, 此時就如同以下的程式: 預設建構方法 (Defau l t Constr ucor) 第 5 ? 6 行就是一個建構方法, 但這個建構方法什麼事情都沒有做, 單純只是為了類別必須定義有建構方法而存在。也正因為如此, 如果類別在產生物件的時候並不需要進行任何初始化的動作, 撰寫時就可以省略定義建構方法, 讓 Java 編譯器自動替我們產生。 9-1-2 自行定義建構方法 如果需要對新建立的物件進行任何初始化設定, 那麼就可以自行定義建構方法。定義建構方法時除了要依循一般方法的定義規則外, 還有以下幾點需要注意: 建構方法不能傳回任何值, 因此不需也不能註明傳回值型別, 連 void 也不可加上, 如果加上傳回型別, 反而會造成編譯錯誤。 建構方法一定要和類別同名, 而無法使用其他名稱來為建構方法命名。 無參數的建構方法 最簡單的建構方法就是在方法的主體區塊中對物件進行初始化的設定,例如: 無參數的建構方法 無參數的建構方法 在程式第14 行一樣是用 new 運算子建立物件, 由於 Java 會自動呼叫第5 ? 8行的建構方法, 所以成員變數 x 與 y 都被設為指定的值, 並不需要在產生物件之後另外指定。 具有參數的建構方法 建構方法也可以接受參數, 讓物件的建構時更具彈性。建構方法若能接受參數, 在建立物件時, 就可以透過跟隨在 new 運算子以及類別名稱之後的那一對小括號傳入參數。例如: 具有參數的建構方法 具有參數的建構方法 要特別注意的是, 一旦定義了建構方法之後, 使用 new 運算子產生物件時就必須依據建構方法的定義, 傳入相同數量以及型別的參數, 就像是呼叫一般的方法一樣, 否則編譯時就會產生錯誤, 例如: 具有參數的建構方法 編譯後的錯誤訊息告訴我們, 編譯器找不到僅需要單一個整數的建構方法。 9-1-3 建構方法的多重定義(Overloading) 建構方法也和一般的方法一樣, 可以使用多重定義的方式, 定義多種版本的建構方法, 以便能夠依據不同的場合, 為新產生的物件進行最適當的初始設定。編譯器會依據所傳入參數的個數以及資料型別, 選擇符合的建構方法, 就像是編譯器選擇多重定義的一般方法時一樣。 舉例來說, 底下的類別就同時定義有多個版本的建構方法: 建構方法的多重定義(Overloa

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档