第3章_方法 、局部變量和成員變量_第1頁
第3章_方法 、局部變量和成員變量_第2頁
第3章_方法 、局部變量和成員變量_第3頁
第3章_方法 、局部變量和成員變量_第4頁
第3章_方法 、局部變量和成員變量_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第第3章章 類與對象類與對象(成員方法、變量成員方法、變量)n類和對象的區(qū)別是什么?n數(shù)據(jù)類型有哪兩類?如何使用?public class &Student String name; char sex; int age; public String tostring ( ) return name + t + sex + t + age; public static void main(String args) Student stu = new Student(); name = 神仙姐姐神仙姐姐; sex = F; age = 18; System.out.println(stu); St

2、udent toSstu.sexstu.age 實現(xiàn)輸出學(xué)生信息,下面代碼有哪些錯誤?實現(xiàn)輸出學(xué)生信息,下面代碼有哪些錯誤?回顧與作業(yè)點評回顧與作業(yè)點評n會定義和使用類的方法n理解變量作用域本章目標(biāo)本章目標(biāo)類的方法類的方法n1、寫出獅子對象的“跑”方法、 “叫”方法電動玩具獅子電動玩具獅子屬性:屬性:顏色:黃色顏色:黃色行為:行為:跑跑叫叫按此按鈕,按此按鈕,獅子開始叫獅子開始叫按此按鈕,按此按鈕,獅子開始跑獅子開始跑類的方法示例類的方法示例public class AutoLion String color = 黃色黃色; public void run() Sys

3、tem.out.println(正在以正在以0.1米米/秒的速度向前奔跑秒的速度向前奔跑); public String bark() String sound = 大聲吼叫大聲吼叫 ; return sound; AutoLion類代碼實現(xiàn)方法體方法體返回類型返回類型演示示例演示示例1:定義類的方法:定義類的方法方法名稱方法名稱如何定義類的方法如何定義類的方法n類的方法定義類的某種行為(或功能) 方法的定義方法的定義 方法的名稱方法的名稱 方法的主體方法的主體 方法返回的數(shù)據(jù)類型方法返回的數(shù)據(jù)類型 定義類的方法定義類的方法public 返回值類型返回值類型 方法名方法名() /這里編寫方法的

4、主體這里編寫方法的主體步驟一:定義方步驟一:定義方法名以及返回值法名以及返回值步驟二:編寫方步驟二:編寫方法體法體方法的返回值方法的返回值n兩種情況n如果方法具有返回值,方法中必須使用關(guān)鍵字return返回該值,返回類型為該返回值的類型n如果方法沒有返回值,返回類型為voidpublic class Student String name = 張三張三; public void getName() return name; 返回類型要匹配返回類型要匹配return 表達式;表達式;編譯錯誤編譯錯誤作用:作用: 跳出方法跳出方法給出結(jié)果給出結(jié)果方法調(diào)用方法調(diào)用n方法是個“黑匣子”,完成某個特定的

5、應(yīng)用程序功能,并返回結(jié)果n方法調(diào)用:執(zhí)行方法中包含的語句 對象名對象名.方法名方法名();2、小明過生日,爸爸送他一個電動獅子玩具,、小明過生日,爸爸送他一個電動獅子玩具,編程測試這個獅子能否正常工作編程測試這個獅子能否正常工作 方法調(diào)用方法調(diào)用public class AutoLion String color = 黃色黃色; /顏色顏色 /*跑跑*/ public void run() System.out.println(正在以正在以0.1米米/秒的速度向前奔跑。秒的速度向前奔跑。); /*叫叫*/ public String bark() String sound = 大聲吼叫大聲吼叫

6、 ; return sound; /*獲得顏色獲得顏色*/ public String getColor() return color; /*顯示獅子特性顯示獅子特性*/ public String showLion() return 這是一個這是一個 + getColor() + 的玩具獅子的玩具獅子!; public class TestLion public static void main(String args) AutoLion lion = new AutoLion(); System.out.println(lion.showLion(); lion.run(); System

7、.out.println(lion.bark(); 在類的方法中調(diào)用在類的方法中調(diào)用該類另一個方法該類另一個方法演示示例演示示例2:方法調(diào)用:方法調(diào)用在在main()方法中方法中調(diào)用類的方法調(diào)用類的方法 方法調(diào)用小結(jié)方法調(diào)用小結(jié)n方法之間允許相互調(diào)用,不需要知道方法的具體實現(xiàn),提高了效率 情 況 舉 例Student類的方法a( )調(diào)用Student類的方法b( ),直接調(diào)用public void a( ) b( ); /調(diào)用b( ) Student類的方法a( )調(diào)用Teacher類的方法b( ),先創(chuàng)建類對象,然后使用“.”調(diào)用public void a( ) Teacher t = ne

8、w Teacher( ); t.b( ); /調(diào)用Teacher類的b() public class Studentpublic void showInfo() return 我是一名學(xué)生我是一名學(xué)生; 方法的返回類型為方法的返回類型為void,方法中不能有,方法中不能有return返回值!返回值!常見錯誤常見錯誤4-1public class Studentpublic double getInfo() double weight = 95.5; double height = 1.69; return weight, height; 方法不能返回多個值方法不能返回多個值!常見錯誤常見錯誤4

9、-2public class Studentpublic String showInfo()return 我是一名學(xué)生我是一名學(xué)生;public double getInfo() double weight = 95.5; double height = 1.69; return weight; 多個方法不能相互嵌套定義!多個方法不能相互嵌套定義!常見錯誤常見錯誤4-3public class Studentpublic String showInfo()return 我是一名學(xué)生我是一名學(xué)生;public double getInfo()double weight = 95.5; doubl

10、e height = 1.69; return weight;public class Studentint age=20;if(age20) System.out.println(年齡不符合入學(xué)要求!年齡不符合入學(xué)要求!); public void showInfo()return 我是一名學(xué)生我是一名學(xué)生;不能在方法外部直接寫程序邏輯代碼!不能在方法外部直接寫程序邏輯代碼!常見錯誤常見錯誤4-4為什么要用帶參數(shù)的方法為什么要用帶參數(shù)的方法n工作原理新鮮桃汁新鮮桃汁新鮮蘋果汁新鮮蘋果汁新鮮梨汁新鮮梨汁輸輸出出三三種種果果汁汁如何使用帶參數(shù)的方法如何使用帶參數(shù)的方法3-1n定義帶參數(shù)的方法n調(diào)

11、用帶參數(shù)的方法public class Zhazhi public String zhazhi ( String fruit ) String juice = fruit + 汁汁; return juice; /*調(diào)用調(diào)用zhazhi方法方法*/Zhazhi myZhazhi = new Zhazhi();String myFruit = 蘋果蘋果;String myJuice = myZhazhi.zhazhi(myFruit);System.out.println(myJuice);參數(shù)列表:參數(shù)列表:(數(shù)據(jù)類型數(shù)據(jù)類型 參數(shù)參數(shù)1,數(shù)據(jù)類型數(shù)據(jù)類型 參數(shù)參數(shù)2)調(diào)用方法,傳遞的參數(shù)要調(diào)

12、用方法,傳遞的參數(shù)要與參數(shù)列表一一對應(yīng)與參數(shù)列表一一對應(yīng)如何使用帶參數(shù)的方法如何使用帶參數(shù)的方法3-2 返回類型返回類型 () /方法的主體方法的主體該方法允許被訪問調(diào)用該方法允許被訪問調(diào)用的權(quán)限范圍的權(quán)限范圍方法返回值的方法返回值的類型類型public class StudentsBiz String names = new String30; public void addName(String name)/增加學(xué)生姓名增加學(xué)生姓名public void showNames ()/顯示全部學(xué)生姓名顯示全部學(xué)生姓名傳送給方法的形參列表傳送給方法的形參列表一個形式參數(shù)一個形式參數(shù)沒有返回值沒有

13、返回值如何使用帶參數(shù)的方法如何使用帶參數(shù)的方法3-3public static void main(String args) StudentsBiz st = new StudentsBiz(); Scanner input = new Scanner(System.in); for(int i=0;i5;i+) System.out.print(請輸入學(xué)生姓名:請輸入學(xué)生姓名:); String newName = input.next(); st.addName(newName); st.showNames(); 實參的類型、數(shù)量、順序?qū)崊⒌念愋?、?shù)量、順序都要與形參一一對應(yīng)都要與形參一一

14、對應(yīng)先實例化對象,先實例化對象,再使用方法再使用方法演示示例演示示例1:帶一個參數(shù)的方法:帶一個參數(shù)的方法 調(diào)用帶參數(shù)的方法調(diào)用帶參數(shù)的方法對象名對象名.方法名(實參方法名(實參1, 實參實參2,,實參,實參n)實參列表實參列表/方法定義方法定義public void addName(String name) /方法體方法體/方法調(diào)用方法調(diào)用對象名對象名.addName(String 張三張三);調(diào)用方法時不能指定實參類型!調(diào)用方法時不能指定實參類型!常見錯誤常見錯誤4-1對象名對象名.addName(張三張三);/方法定義方法定義public boolean searchName(int s

15、tart ,int end ,String name)/方法體方法體/方法調(diào)用方法調(diào)用String s=開始開始;int e=3;String name=張三張三;boolean flag=對象名對象名. searchName(s ,e ,name);形參和實參數(shù)據(jù)類型不一致形參和實參數(shù)據(jù)類型不一致!常見錯誤常見錯誤4-2/方法定義方法定義public boolean searchName(int start,int end,String name)/方法體方法體/方法調(diào)用方法調(diào)用int s=1;int e=3;boolean flag= 對象名對象名.searchName(s,e);形參和實

16、參數(shù)量不一致!形參和實參數(shù)量不一致!常見錯誤常見錯誤4-3/方法定義方法定義public boolean searchName(int start,int end,String name)/方法體方法體/方法調(diào)用方法調(diào)用int s=1;int e=3;String name=張三張三;對象名對象名.searchName(s,e,name);調(diào)用方法后沒有對返回值作任何處理!調(diào)用方法后沒有對返回值作任何處理!常見錯誤常見錯誤4-4成員變量和局部變量成員變量和局部變量2-1n變量聲明的位置決定變量作用域n變量作用域確定可在程序中按變量名訪問該變量的區(qū)域for(int i = 0, a = 0; i

17、 4; i+) a+;System.out.println ( a );代碼錯誤代碼錯誤a的作用域僅在的作用域僅在for循環(huán)中循環(huán)中 成員變量和局部變量成員變量和局部變量2-2變量變量1類型類型 變量變量1; 變量變量2類型類型 變量變量2;變量變量3類型類型 變量變量3;public 返回類型返回類型 方法方法1() 變量變量4類型類型 變量變量4;public 返回類型返回類型 方法方法2() 變量變量5類型類型 變量變量5; public class AutoLion AutoLion類的方法,類的方法,其他類的方法其他類的方法 誰能使用這些變量?誰能使用這些變量? 方法方法1 方法方法

18、2 成員變量成員變量 局部變量局部變量 局部變量局部變量 n作用域不同n局部變量的作用域僅限于定義它的方法n成員變量的作用域在整個類內(nèi)部都是可見的n初始值不同nJava會給成員變量一個初始值nJava不會給局部變量賦予初始值n在同一個方法中,不允許有同名局部變量;在不同的方法中,可以有同名局部變量n兩類變量同名時,局部變量具有更高的優(yōu)先級成員變量和局部變量的區(qū)別成員變量和局部變量的區(qū)別常見錯誤n請指出下面代碼的錯誤class Dog private String name = 旺財旺財; / 昵稱昵稱 private int health = 100; / 健康值健康值 private int

19、 love = 0; / 親密度親密度 public void play(int n) int localv; health = health - n; System.out.println(name+ +localv+ +health+ +love); public static void main(String args) Dog d=new Dog(); d.play(5); 局部變量沒局部變量沒有初始化有初始化public class Test int score1 = 88; int score2 = 98; public void calcAvg() int avg = (scor

20、e1 + score2)/2; public void showAvg() System.out.println(平均分是:平均分是: + avg); 常見錯誤常見錯誤局部變量局部變量avg的作用域僅限于的作用域僅限于calcAvg()方法方法靜態(tài)常量nstatic可以用來修飾屬性、方法和代碼塊nstatic修飾的屬性和方法稱為類屬性(類變量)、類方法n不使用static修飾的屬性和方法,屬于單個對象,通常稱為實例屬性(實例變量)、實例方法nstatic修飾的變量和方法可以通過類名和對象名訪問,而不用static修飾的變量和方法只能通過對象名訪問nfinal可以用來修飾屬性、方法和類n用fin

21、al修飾的變量成為常量,其值固定不變Penguin pgn1 = new Penguin();pgn1.sex = Penguin.SEX_MALE; class Penguin static final String SEX_MALE=Q仔仔; static final String SEX_FEMALE=Q妹妹; Java中中定義常量定義常量的語法的語法static void print() 用類名調(diào)用:用類名調(diào)用:Dog.print(); 使用使用static定義變量定義變量 使用使用static定義方法定義方法 演示示例:靜態(tài)常量演示示例:靜態(tài)常量 可否這樣賦值可否這樣賦值?常見錯誤n

22、請指出下面代碼的錯誤class Dog private String name = 旺財旺財; / 昵稱昵稱 private int health = 100; / 健康值健康值 private int love = 0; / 親密度親密度 public void play(int n) static int localv=5; health = health - n; System.out.println(name+ +localv+ +health+ +love); public static void main(String args) Dog d=new Dog(); d.play(5); 在方法里不可以在方法里不可以定義定義static變量變量 面向?qū)ο蟮木幊趟季S面向?qū)ο蟮木幊趟季SnScoreCalc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論