




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 Java Java 程序設計程序設計單元二:面向對象程序設計單元二:面向對象程序設計 Java Java 程序設計程序設計 知識目標 類的方法組成部分; 定義和使用類的方法; 變量作用域; 定義包和導入包的關鍵字; 構造方法實現對象成員的初始化; 方法重載; 對構造方法進行重載 。 能力目標 會定義和使用類的方法; 能夠理解變量作用域; 會創建包組織Java工程; 能夠掌握構造方法; 能夠掌握方法重載 。 Java Java 程序設計程序設計4任務陳述任務陳述123知識準備知識準備任務實施任務實施任務拓展任務拓展任務實訓任務實訓5 Java Java 程序設計程序設計任務描述:任務描述: 借
2、書卡是學生日常生活重要組成部分。每張借書卡信息包含賬號、持卡人姓名、身份證號碼、地址、已借書數、可借書數、本次借書數、本次還書數。使用借書卡還可以借書、還書和查詢。要求:根據持卡人不同操作,顯示不同信息。當借書操作后,顯示本次借書數及已借書數;當還書操作時,顯示本次還書數和已借書數。 運行結果:運行結果: Java Java 程序設計程序設計 2.4類的方法類的方法2.4.1定義類的方法定義類的方法Java 類中方法的聲明采用以下格式:訪問修飾符訪問修飾符返回值類型返回值類型 方法名稱方法名稱 (參數列表參數列表) 方法體方法體1. 返回值類型:返回值類型:表示方法返回值的類型。如果方法不返回
3、任何值,它必須聲明為 void(空)。對于有返回值的方法,方法中一定有return語句,方法的返回值類型和return語句后面的類型一樣。例如,如果一個方法中含有代碼 return “aaaa”;那么包含該句的方法返回值是字符型。接收方法返回值的變量也必須與指定方法返回值的類型相兼容。2. 方法名稱:方法名稱:可以是任何合法標識符,但具有意義,第一個字母小寫。3. 參數列表:參數列表:允許將參數值傳遞到方法中。列舉的元素由逗號分開,而每一個元素包含一個類型和一個標識符,也稱之為形參。 Java Java 程序設計程序設計 2.1.2 2.1.2 使用類的方法使用類的方法 對象創建以后,使用“.
4、”操作符實現對其方法調用,方法中的局部變量被分配內存空間,方法執行完畢,局部變量即刻釋放內存。 1. 1. 無參方法的調用無參方法的調用 類的方法在使用時一般要先創建類的對象,再通過對象調用方法。 例如,定義Person類的對象zhangsan :Person zhangsan =new Person(); 然后通過對象調用類的方法。例如調用學習方法: zhangsan.study();/study方法返回值為String類型 如果需要利用study()方法的返回值,可以將返回結果賦給同一類型的變量。例如: String s1= zhangsan.study(); Java Java 程序設計
5、程序設計2. 2. 有參方法的調用有參方法的調用 同樣在定義了類的對象后調用,并需要傳入實際的參數,此時的參數稱為實際參數,簡稱實參。實參必須與方法定義中的形參一致,所謂的一致是要求參數個數、參數類型、參數的排列順序一致參數個數、參數類型、參數的排列順序一致。 例如,定義Person類的對象zhangsan,通過對象調用類的play方法,play方法中含有一個String類型的變量:zhangsan.play(“football”); /對象名. play方法 同樣如果需要利用方法的返回值,可以將返回結果賦給同一類型變量。 Java Java 程序設計程序設計3. 3. 靜態方法的調用靜態方法
6、的調用 靜態方法的調用無需定義對象,可以通過類名直接使用,我們也稱這種方法為類方法。定義格式:定義格式: public static 返回值返回值 方法名方法名(參數列表參數列表) 調用格式:調用格式: 類名類名.方法名方法名(實參實參1,實參實參2,); 例如,在類Person中定義一個靜態方法eat():public static void eat() 那么,靜態方法的調用: Person. eat(); 注意:注意:靜態方法內部只能調用靜態方法和靜態變量。 【實例【實例2-2】計算立方體的體積程序設計】計算立方體的體積程序設計 Java Java 程序設計程序設計 2.5 構造方法構造方
7、法 創建類的對象時,使用new關鍵字和一個與類名相同的方法來完成,這個方法是在實例化過程中被調用的,稱之為構造方法。構造方法區別于普通的方法,有幾個明顯的特點: 它的名字必須與它所在的類的名字完全相同。 不返回任何數據類型,也不需要使用void聲明。 它的作用是創建對象并初始化成員變量。 在創建對象時,系統會自動調用類的構造方法。 構造方法一般都用 public來聲明,這樣才能在程序任意位置創建對象。 每個類至少有一個構造方法。如果不寫構造方法,Java 將提供一個默認的不帶參的方法體為空的構造方法。 Java Java 程序設計程序設計 格式:格式:訪問權限訪問權限 類名稱類名稱(參數參數1
8、,參數參數2,)/程序語句程序語句 ;/構造方法沒有返回值構造方法沒有返回值 注意:構造方法不能像成員方法那樣直接被對象調用,只能在new運算符實例化對象時,被系統自動調用。 Java Java 程序設計程序設計構造方法分類構造方法分類構造方法根據參數進行了分類:無參構造方法和有參構造方法。無參構造方法和有參構造方法。1. 1. 無參構造方法無參構造方法 例如: public class People public People() /使用固定值初始化成員變量 那么在含有main方法的測試類中實例化People對象時: People p1= new People();注意:無參構造方法可以不寫
9、,類中默認含有一個無參構造方法,并且該構造方法的方法體內沒有語句。而使用默認值初始化對象成員變量,數值型變量初始為0,布爾型初始為false,字符型初始為“0”,字符串初始為null; Java Java 程序設計程序設計2. 2. 有參構造方法有參構造方法 例如: public class Peopleint age;String name; public People(int myAge,String myName) age=myAge; name=myName; 那么在含有main方法的測試類中實例化People對象時: People p1= new People(20,”zhangsa
10、n”);上面的實例化就可以看出是把成員變量進行了動態的賦值。注意:當定義了有參的構造方法后,無參構造方法將不再存在,如果還想使用無參的構造方法進行實例化對象,就需要顯性的寫出無參構造方法。 Java Java 程序設計程序設計 2.3 2.3 方法重載方法重載 2.3.1 2.3.1 方法重載的概念方法重載的概念 方法重載是指多個方法享有相同的名字,但是這些方法的參數必須不同,所謂的不同是指:參數的個數不同,參數類型不同,參參數的個數不同,參數類型不同,參數的順序不同數的順序不同。返回類型不能用來區分重載的方法。在這種情況下,該方法就叫被重載了,這個過程稱為方法的重載。當一個重載方法被調用時方
11、法名是一樣的,因此Java用參數的類型、(或)數量、(或)順序來選擇實際調用的重載方法。例如:System.out.println();里面的println這個方法就是重載方法。注意:注意:方法的重載要使用恰當,當一個動作(方法)分別接受不同的指令(參數)產生不同的效果,可以使用。但過度的使用將會降低程序的可讀性。參數不同是區分重載方法的關鍵因素,參數不同主要包括以下方面的不同:參數類型不同。例如:public void method(String s);public void method(int s);參數個數不同。例如:public void method(String s,int i)
12、;public void method(String s);參數順序不同。例如:public void method(String s,int i);public void method(int i,String s); Java Java 程序設計程序設計【實例【實例2-4】求圓形的面積,要求用戶輸入任何類型的數據后都要能得到】求圓形的面積,要求用戶輸入任何類型的數據后都要能得到最終的面積值。最終的面積值。public class MethodOverloading final float PI=3.14; double calArea(double r) return PI * r * r
13、; float calArea (float r) return PI * r * r; float calArea(int r) return PI * r * r; folat calArea (String r) float i=Float.parseInt(r); return PI * r * r; 可以發現方法重載主要目的是為了滿足在不同輸入的情況下依然可以得到進行相同或相似的處理。在編程上有些麻煩,但是在使用性和靈活性得到了加強。由于實現了Java在編譯時的方法的多種狀態,所以有時也成為靜態多態。 Java Java 程序設計程序設計構造方法重載構造方法重載不僅普通方法可以重載,
14、構造方法也可以重載。只要構造方法的參數個數不同,或是類型不同,便可定義多個名稱相同的構造方法。【實例【實例2-52-5】利用構造函數重載創建對不同變量初始化的對象】利用構造函數重載創建對不同變量初始化的對象public class Rectangle double width; double length;Rectangle () /直接初始化為數值直接初始化為數值width = 1; length=5; Rectangle (double x)/把兩個變量初始化為相同傳入值把兩個變量初始化為相同傳入值 width = x;length =x; Rectangle (double w,doub
15、le len) /分別對兩個屬性初始化不同的值分別對兩個屬性初始化不同的值 width = w; length=len; Java Java 程序設計程序設計 2.6 變量的作用域變量的作用域變量聲明的位置決定變量作用域。Java 變量的范圍有四個級別:類級、對象實例級、方法級、塊級。 類級變量類級變量又稱全局級變量,在對象產生之前就已經存在,就是static 修飾的靜態變量。 對象實例級對象實例級,就是成員變量,它可以使用在整個類和對象中。 方法級:方法級:就是在方法內部定義的變量,就是局部變量。 塊級:塊級:就是定義在一個塊內部的變量,變量的生存周期就是這個塊, 出了這個塊就消失了,比如i
16、f、for語句的塊。注意:后面兩個級別變量作用域的判斷只需要記住:在變量聲明的地方找到離它最近的一對大括號就是它的作用域,出了這對大括號就不能用了。 Java Java 程序設計程序設計 2.5 2.5 定義包和導入包的關鍵字定義包和導入包的關鍵字包是Java提供的文件組織形式,采用類似于文件夾的形式。包提供了訪問級別控制和命名空間管理。不同的包中允許出現相同名字的文件。1. 1. 定義包定義包格式:package .子包名1.子包名2.子包名n;例如:依照地域范圍+制作人+功能分類 來定義包package .can.daopackage .can.dao2. 2. 導入包導入包 格式:pac
17、kage .子包名1.子包名2.類名|*; 例如:導入系統類庫中的Date表示日期的類。 import java.util.Date;import java.util.Date; 注意:注意: 在Java中,java.lang包不需要使用import手動導入,系統自動位置導入,因此在該保內存放了很多常用的基礎的類,例如Math。 Java Java 程序設計程序設計1. 1. 解決步驟解決步驟本任務中行為有借書、還書和查詢。在BookCard類分別定義了3個方法borrow(int);TheReturn(int);query()。 打開Eclipse,創建BookCard類; 在類大括號內進行
18、屬性定義; 在類的大括號內定義3個方法,表示借書、還書和查詢; 在BookCard類的main方法中,創建一個BookCard類的對象; 利用創建的BookCard對象,使用對象名.方法的形式調用方法,完成具體的功能; Java Java 程序設計程序設計2.2.任務代碼任務代碼public class BookCard public void borrow(int cash) public void borrow(int cash) if (Remain = cash) Remain = Remain - cash;/省略輸出語句public void TheReturn(int cash) public void TheReturn(int cash) Remain = Remain + cash;/省略輸出語句public void query() public void query() System.out.println(可借書數 + Remain); Java Java 程序設計程序設計1. 任務拓展要求:任務拓展要求: 原任務中原任務中方法方法 borrow(int);TheReturn(int);query()都都沒有返回值,現在改沒有返回值,現在改為正確借書、還書
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國鹽酸左氧氟沙星片行業現狀規模與需求趨勢研究報告
- 2025至2030中國皮褲行業供需分析及發展前景報告
- 2025至2030中國環氧地坪行業市場發展分析及發展趨勢與投資前景預測報告
- 2025至2030中國特色農產品行業市場占有率及投資前景評估規劃報告
- 2025特殊危險作業安全管理培訓
- 推動教育改革建設教育生態系統
- 醫療手術中虛擬現實的模擬與輔助
- 打造高效健康宣教體系推動醫療產品銷售增長
- 技術如何賦能商業發展以縮小數字鴻溝
- 基于教育大數據的教學質量提升策略
- 【公開課】三角形的邊+課件+2025-2026學年人教版八年級數學上冊
- 2025年廣東省普通高中學業水平合格性考試模擬一歷史試題(含答案)
- 【公開課】+分子動理論的初步知識(教學課件)2025-2026學年初中物理人教版(2024)九年級全一冊
- 2025年4月自考03346項目管理試題
- 2024年度醫患溝通課件
- YY/T 0500-2021心血管植入物血管假體管狀血管移植物和血管補片
- GB 14934-2016食品安全國家標準消毒餐(飲)具
- 后進生轉化情況記錄表2
- 國際節能效果測量和驗證規程
- 灌陽地質概況學習教案
- 門式腳手架專項施工方案完成
評論
0/150
提交評論