4.5 this引用 第5章 對象的行爲

公司性質的包名: com.(後面+公司名字/團隊名字).(後面+項目名稱).(後面+bean(公司對象)/entity/util(工具)(領域對象)後綴)
組織機構的包名: org
政府機構的包名: gov
教育機構的包名: edu
Import com.(加後綴) 。可以引用這個類
包名必須小寫,不得具有負數形式

包目錄結構:主要針對的是class文件的目錄結構
4.5 this引用
每個對象可以使用this關鍵字引用它本身,他可以訪問所有信息。

This代表當前類的對象的引用。

要訪問一個對象的成員變量或方法就必須有一個對該對象的引用。
但是,在computerPay()方法中,我們並沒有用一個引用來訪問salary,
僅僅用了salary變量。這是因爲編譯器知道computerPay()正在訪問salary成員變量,
編譯器會爲我們添加上引用。
那麼,編譯器到底添加了哪個引用呢?
computePay()需要一個引用來指明到底是哪個對象的
computePay()方法被調用,這個引用總是this引用。

4.6 使用包來組織類
Java通過引入包(package)的機制,以解決這兩個問題。
在Java中,每個類屬於一個包。包有兩個基本的用途:
 提供了一個組織類的機制;
 爲包中的類提供了一個命名空間。

 4.6.1 將類添加到包中
 在創建類時,使用關鍵字package就可以將類添加到包中。
 包聲明必須是源代碼文件中除註釋以外的第一條語句。

 包payroll是不需要實例化或者物理地創建的。
 編譯器看到包聲明後,就會將Employee類看做是正在payroll包中,即使Employee是payroll包中的第一個類。
 4.6.2 包創建的命名空間
 包爲所有類創建了一個命名空間。
 如果類在一個包含中,那麼包名就成爲類名的一部分,
 包名作爲類名的前綴,用點運算符分隔。
包創建了命名空間,包名成爲類名的前綴。
命名空間的用途是爲了避免兩個同名類的命名衝突。

Java SE中的很多包以java作爲名稱的開頭,
以描述它們在標準Java語言中的角色。
Java EE中的很多包以javax作爲名稱的開頭,
例如javax.servlet和javax.ejb。這裏“x”是指擴展(extension),
指出該包是Java語言的一個擴展。

4.6.3使用import關鍵字導入其它包中的類
如果一個類要使用同一包中的其它類,就不需要使用包名。
同一個包中的類可以不需要特定的語法而相互找到。

如果Boss類不在payroll包中會怎麼樣呢?
Boss類必須使用如下幾種技術之一來引用位於不同包中的類:

 使用類的全名。例如,payroll.Employee。
 使用關鍵字import以及通配符()導入包。例如,”import payroll.;”。
 使用關鍵字import導入類本身。例如”import payroll.Employee;”。

課堂講解

棧 先進後出
隊列 先進先出
Public 訪問修飾符
Static 可選性質的修飾符
Void 返回類型
方法的方法名 :遵循標示符的民命規則等
(參數的參數列表)方便調入,傳入參數
(參數既可以寫一個,也可以寫多個/參數個數可以自定義)
定義在方法參數列表上的參數,我們取名爲:形參
形參: 主要用來規定改方法杯調用時,可以接收的數據的數據參數

方法調用時,實際參數必須要滿足形參所定義的數據參數類型,

基本數據類型的話, 至少需要保證可以相互轉換

實際參數如果是基本數據類型,和String類型,
在被調用的方法內部針對形參做任何改變,
實際參數所對應的變量都不會改變

但是,如果是應用數據內型,在被調用的方法內部針對形參做了改變,
實際參數也會能跟着改變

第5章 對象的行爲

掌握類方法的聲明與調用
理解方法調用棧
理解方法重載
理解構造器

5.1(瞭解)方法調用棧
在Java程序中,第一個被調用的方法就是main(),
該方法是JVM調用的。因此,main()方法總是在調用棧的底部。
我們之前學習流程控制
1、方法的調用
2、選擇語句
3、循環語句

5.1調用方法
方法返回一個值。在這種情況下,一個基本數據類型或引用類型被傳回給方法的調用者。
方法不返回一個值。在這種情況下,返回值被聲明爲void。
方法拋出一個異常給方法的調用者。我們將在《異常處理》一章討論異常。
因爲Java是一個嚴格的面向對象編程語言,所以Java中的方法只能出現在類中。在某些編程語言中,方法可以以全局的形式出現,可以在任何時候調用。在Java中,沒有聲明爲靜態(static)的方法只能在類的實例中調用。
5.3方法簽名
通過查看方法的簽名,我們可以瞭解到調用一個方法時所需知道的一切。
方法的簽名包括方法名、參數列表、返回值的數據類型等信息
注意,方法的簽名不包含方法體內的任何語句。簽名只是方法的聲明部分。
我們按照在聲明方法時出現的順序,列出方法簽名中每個部分如下:

訪問修飾符。訪問修飾符的可能值包括public、private、protected或默認訪問修飾符(即沒有訪問修飾符)。public訪問修飾符允許從任何地方調用該方法。private訪問修飾符意味着除了在類內部以外,沒有人可以調用它。protected以及默認訪問修飾符分別適用於繼承和包,我們將在後面章節中詳細討論。
可選修飾符。方法簽名的下一個部分是可選的修飾符,包括static、final、abstract、native以及synchronized。native方法用於編寫一個Java訪問映射到用不同編程語言編寫的方法,本書不做討論。其它修飾符我們將在後續章節中詳細講解。類的方法可以不使用這些可選修飾符,也可以使用多個修飾符。

返回值。方法簽名必須包括返回值的類型。如果方法不需要返回一個值,就使用void。否則,就要指定返回值的數據類型。返回值的類型可以是八種基本數據類型之一或者一個引用類型。這意味着我們可以從方法中返回任何類型的數據,因爲Java中的變量要麼是八種基本數據類型之一,要麼是對一個對象的引用。
方法名。方法名必須出現在返回值之後。方法名可以是任何有效的Java標識符。Java命名慣例要求方法是混合大小寫的駝峯法則,即方法名的第一個單詞的第一個字母爲小寫,其它單詞的第一個字母爲大寫。例如,main、toString、getDay、setPreferredSize。
形式參數列表。在方法名的後面必須是用一對括號括起來的形式參數列表。方法被調用時,數據可以通過該方法的調用者傳遞進來。這個傳遞進來的數據被複制到形式參數中。一個形式參數由一個數據類型和一個標識符組成。例如,下面的方法簽名聲明瞭兩個形式參數,一個是int類型,一個是float類型:
拋出的異常列表。方法可以拋出一個異常給方法的調用者。當方法中出現一個方法本身不能或者不想處理的問題時,就拋出一個異常。如果方法拋出一個受檢查的異常,該異常必須在方法簽名中使用throws關鍵字聲明。在throws關鍵字後可以聲明多個用逗號分隔的異常。例如,下面的方法簽名聲明該方法可以拋出兩個可能的異常:

5.4形式參數和實際參數
一個方法的簽名包括一個形式參數(Parameter)的列表,
形式參數列表用於聲明傳遞到方法中的數據的類型。
傳遞給形式參數的數據稱爲實際參數(Arguement)。
當方法被調用時,實際參數必須傳遞給形式參數列表中的每個形式參數。
5.5按值調用
在Java中,我們不需要指定要傳遞的實際參數使用按值調用,
因爲它是自動發生的,實際上也是唯一的選擇。
其它編程語言中可能會使用按引用調用或按指針調用,
這種情況下實際參數不是複製給形式參數。
在Java中,不能用按引用調用或按指針調用。
不管傳遞給方法的實際參數是什麼類型,相關的形式參數都會得到該數據的一份拷貝,這就是按值調用的工作原理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章