摘要:方法的返回值方法返回什么類型的值我們就用對應的數據類型的變量來接收調用方法執行流程調用方法執行流程方法的定義是沒有順序的,寫在函數的上邊或者下邊都可以。
01方法的概述
* A: 為什么要有方法 * 提高代碼的復用性 * B: 什么是方法 * 完成特定功能的代碼塊。02方法的定義格式
* A: 方法的格式 * 修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...) { 方法體語句; return 返回值; } * B: 方法的格式說明 * 修飾符:目前就用 public static。后面我們再詳細的講解其他的修飾符。 * 返回值類型:就是功能結果的數據類型。 * 方法名:符合命名規則即可。方便我們的調用。 * 參數: * 實際參數:就是實際參與運算的。 * 形式參數;就是方法定義上的,用于接收實際參數的。 * 參數類型:就是參數的數據類型 * 參數名:就是變量名 * 方法體語句:就是完成功能的代碼。 * return:結束方法的。 * 返回值:就是功能的結果,由return帶給調用者。03定義方法計算面積
* A: 定義方法計算面積 public class MethodDemo{ public static void main(String[] args){ //調用方法, 方法執行起來 // 在方法main中,調用方法 getArea int area = getArea(5,6); System.out.println("面積是: "+area); } /* 要求: 計算一個長方形的面積 定義方法解決這個要求 分析方法定義過程: 1.明確方法計算后的結果的數據類型 int 定義格式對應的就是返回值類型 2.方法計算過程中,有沒有未知的數據, 寬和長, 未知數據的數據類型 int 未知數的變量,定義在方法的小括號內 */ public static int getArea(int w, int h){ //實現方法的功能主體 //int area = w * h; return w * h; } }04調用方法
* A: 調用方法 * a: 在main函數中調用方法,讓方法執行起來 * b: 方法的形參 * 方法要什么參數我們就給什么類型的參數。 * c: 方法的返回值 * 方法返回什么類型的值我們就用對應的數據類型的變量來接收05調用方法執行流程
* A: 調用方法執行流程 * a: 方法的定義是沒有順序的,寫在main函數的上邊或者下邊都可以。 * b: 方法的執行,是把實參傳遞給形參,從而來執行的。 * c: 方法只有被調用才會執行。06方法調用的內存圖
* A: 方法調用的內存圖 * a: 參見day05day05(Java基礎語法)day05_source方法內存圖.JPG07方法調用的練習
* A: 案例代碼 /* 方法的定義練習 */ import java.util.Scanner; public class MethodDemo_1{ public static void main(String[] args){ //printRect(); //int number = getNumber(); //System.out.println(getNumber()); //printRect2(3,5); double avg = getAvg(2,2,3); System.out.println(avg); } /* 定義有返回值有參數方法,如求三個數的平均值 明確方法計算后的數據類型, 返回值類型 double 明確方法未知數, 三個未知的整數 */ public static double getAvg(double a, double b,double c){ return (a+b+c)/3; } /* 定義無返回值有參數方法,如打印指定M行,每行N個*號的矩形 明確方法計算后結果,控制臺輸出圖形,沒有返回值的 方法中有沒有未知數,圖形行數,和列數,是未知的, 數據類型整數int */ public static void printRect2(int m,int n){ for(int i = 0 ; i < m ; i++){ for(int j = 0 ; j < n ; j++){ System.out.print("*"); } System.out.println(); } } /* 定義有返回值無參數方法,如鍵盤錄入得到一個整數 明確方法計算后結果的數據類型 int 明確有沒有未知數,沒 */ public static int getNumber(){ Scanner sc = new Scanner(System.in); //int number = sc.nextInt(); return sc.nextInt(); } /* 定義無返回值無參數方法,如打印3行,每行3個*號的矩形 為什么沒有返回值: 打印矩形 ,輸出效果,不需要將結果返回 明確未知數: 不需要未知數 */ public static void printRect(){ for(int i = 0 ; i < 3 ; i++){ for(int j = 0 ; j < 3 ;j++){ System.out.print("*"); } System.out.println(); } } }08方法的定義和使用的注意事項
* A: 方法的定義和使用的注意事項 * a: 方法不能定義在另一個方法的里面 * b: 寫錯方法名字 * c: 寫錯了參數列表 * d: 方法返回值是void,方法中可以省略return 不寫 return 下面不能有代碼 * e 方法返回值類型,和return 后面數據類型必須匹配 * f: 方法重復定義問題 * g: 調用方法的時候,返回值是void, 不能寫在輸出語句中09方法的重載
* A: 方法的重載 * 在同一個類中,方法名相同,參數列表不同。與返回值類型無關。 * 參數列表不同: * A:參數個數不同 * B:參數類型不同 * C:參數的順序不同(算重載,但是在開發中不用) * B: 案例代碼 public static int getSum(int a,int b){ System.out.println("兩個int參數"); return a+b; } public static int getSum(int a,int b,int c){ System.out.println("三個int參數"); return a+b+c; } public static double getSum(double a,double b){ System.out.println("兩個double參數"); return a+b; }10方法重載注意事項
* A: 方法重載注意事項 * a: 參數列表必須不同 * b: 重載和參數變量名無關 * c: 重載和返回值類型無關 * d: 重載和修飾符無關 * e: 技巧: 重載看方法名和參數列表11方法參數是基本數據類型
* A: 方法參數是基本數據類型 * a: 方法參數是基本類型時,傳遞的是值。12方法參數是引用數據類型
* A: 方法參數是引用數據類型 * a: 方法參數是引用類型時,傳遞的是內存地址值。13隨機點名器
* A: 案例代碼 /* 實現隨機點名器 1.存儲所有學生姓名 2.預覽所有學生姓名,遍歷數組 3.隨機數作為索引,到數組中找元素 將功能獨立出來, 作成方法,調用方法即可 定義三個功能, 用到同一個姓名數據 姓名存儲到數組中,三個方法,使用一個數組中的數據, 方法傳遞參數 */ import java.util.Random; public class CallName{ public static void main(String[] args){ //定義數組,存儲學生姓名 String[] names = new String[8]; //調用添加姓名方法 addStudent(names); //調用遍歷數組方法 printStudentName(names); //調用隨機姓名的方法 String name = randomStudentName(names); System.out.println(name); } /* 定義方法,隨機數,做索引,數組中找到學生姓名 返回值? 學生姓名 參數? 數組 */ public static String randomStudentName(String[] names){ Random ran = new Random(); int index = ran.nextInt(names.length); return names[index]; } /* 定義方法,遍歷數組 返回值? 沒有 參數? 數組 */ public static void printStudentName(String[] names){ for(int i = 0 ; i < names.length ;i++){ System.out.println(names[i]); } } /* 定義方法,實現向數組中添加學生姓名 返回值? 沒有, 參數? 參數就是數組 */ public static void addStudent(String[] names){ names[0] = "張三"; names[1] = "李四"; names[2] = "王五"; names[3] = "李蕾"; names[4] = "韓梅梅"; names[5] = "小名"; names[6] = "老王"; names[7] = "小華"; } }14庫存案例代碼實現_1
* A: 案例代碼 /* 實現商品的庫存管理 功能: 1.展示用戶選擇功能清單 2.根據選擇的功能編號,進行不同的操作 A. 展示所有庫存 B. 修改庫存數量 分析: 1.展示用戶清單: 輸出語句, 用戶輸入, 選擇功能序號 2.根據選擇,調用不同的方法 switch語句 case 1 2 3 A 展示庫存 將存儲商品的數組,遍歷 B 修改庫存 修改所有的庫存數量 */ import java.util.Scanner; public class Shopp{ public static void main(String[] args){ } /* 定義方法,展示所有的庫存清單,遍歷 返回值,沒有 參數, 數組 */ public static void printStore(String[] brand,double[] size,double[] price,int[] count){ System.out.println("----------商場庫存清單----------"); System.out.println("品牌型號 尺寸 價格 庫存數"); //定義變量,計算總庫存數,和總價格 int totalCount = 0; int totalMoney = 0; //遍歷數組,將數組中所有的商品信息打印出來 for(int i = 0 ; i < brand.length ; i++){ System.out.println(brand[i]+" "+size[i]+" "+price[i]+" "+count[i]); totalCount += count[i]; totalMoney += count[i]*price[i]; } System.out.println("總庫存數: "+totalCount); System.out.println("商品庫存總金額: "+totalMoney); } /* 定義方法,實現用戶的選擇功能,功能的需要返回來 返回值, int 參數, 沒有 */ public static int chooseFunction(){ System.out.println("-------------庫存管理------------"); System.out.println("1.查看庫存清單"); System.out.println("2.修改商品庫存數量"); System.out.println("3.退出"); System.out.println("請輸入要執行的操作序號:"); //接受鍵盤輸入 Scanner sc = new Scanner(System.in); int chooseNumber = sc.nextInt(); return chooseNumber; } }15庫存案例代碼實現_2
* A: 案例代碼 /* 定義方法,修改所有商品的庫存 用戶輸入1個,修改1個 返回值,沒有 參數, 庫存數的數組, 品名數組 */ public static void update(String[] brand, int[] count){ //遍歷數組,遍歷到一個,修改一個 //接受鍵盤輸入 Scanner sc = new Scanner(System.in); //遍歷數組 for(int i = 0; i < brand.length ; i++){ System.out.println("請輸入"+brand[i]+"的庫存數"); //鍵盤輸入,錄入庫存, 存儲到庫存的數組中 int newCount = sc.nextInt(); count[i] = newCount; } //int chooseNumber = sc.nextInt(); }16庫存案例代碼測試
* A: 案例 /* 實現商品的庫存管理 功能: 1.展示用戶選擇功能清單 2.根據選擇的功能編號,進行不同的操作 A. 展示所有庫存 B. 修改庫存數量 分析: 1.展示用戶清單: 輸出語句, 用戶輸入, 選擇功能序號 2.根據選擇,調用不同的方法 switch語句 case 1 2 3 A 展示庫存 將存儲商品的數組,遍歷 B 修改庫存 修改所有的庫存數量 */ import java.util.Scanner; public class Shopp{ public static void main(String[] args){ //使用數組,保存商品的信息 //品名,尺寸,價格,庫存數, 定義5個數組 String[] brand = {"MacBookAir","ThinkpadT450"}; double[] size = {13.3,15.6}; double[] price = {9998.97,6789.56}; int[] count = {0,0}; while(true){ int choose = chooseFunction(); switch(choose){ case 1: //調用查看庫存清單方法 printStore(brand,size,price,count); break; case 2: //調用修改庫存的方法 update(brand,count); break; case 3: return ; default: System.out.println("沒有這個功能"); break; } } } /* 定義方法,修改所有商品的庫存 用戶輸入1個,修改1個 返回值,沒有 參數, 庫存數的數組, 品名數組 */ public static void update(String[] brand, int[] count){ //遍歷數組,遍歷到一個,修改一個 //接受鍵盤輸入 Scanner sc = new Scanner(System.in); //遍歷數組 for(int i = 0; i < brand.length ; i++){ System.out.println("請輸入"+brand[i]+"的庫存數"); //鍵盤輸入,錄入庫存, 存儲到庫存的數組中 int newCount = sc.nextInt(); count[i] = newCount; } //int chooseNumber = sc.nextInt(); } /* 定義方法,展示所有的庫存清單,遍歷 返回值,沒有 參數, 數組 */ public static void printStore(String[] brand,double[] size,double[] price,int[] count){ System.out.println("----------商場庫存清單----------"); System.out.println("品牌型號 尺寸 價格 庫存數"); //定義變量,計算總庫存數,和總價格 int totalCount = 0; int totalMoney = 0; //遍歷數組,將數組中所有的商品信息打印出來 for(int i = 0 ; i < brand.length ; i++){ System.out.println(brand[i]+" "+size[i]+" "+price[i]+" "+count[i]); totalCount += count[i]; totalMoney += count[i]*price[i]; } System.out.println("總庫存數: "+totalCount); System.out.println("商品庫存總金額: "+totalMoney); } /* 定義方法,實現用戶的選擇功能,功能的需要返回來 返回值, int 參數, 沒有 */ public static int chooseFunction(){ System.out.println("-------------庫存管理------------"); System.out.println("1.查看庫存清單"); System.out.println("2.修改商品庫存數量"); System.out.println("3.退出"); System.out.println("請輸入要執行的操作序號:"); //接受鍵盤輸入 Scanner sc = new Scanner(System.in); int chooseNumber = sc.nextInt(); return chooseNumber; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67155.html
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現在已經一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現將已經寫好的文章整理一個目錄,方便更多的小伙伴去學習。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
摘要:二高級賦值語句何為高級賦值語句就是常規的賦值方法進行操作是會報錯的,得進行一些更高級一點的操作。小技巧三舉例用賦值語句把列表進行每次減少個元素并輸出列表。 從Pyt...
摘要:接口測試主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。隨著案例和執行結果的不斷積累,接口測試覆蓋會更加充分,統計結果會更加精確。 原文出自【聽云技術博客】:http://blog.tingyun.com/web/a... 今年遇到了幾個問題,與接口的功能和性能相關,恰巧最近公司也在組織以冒煙測試為主題的活動,于是乎突發奇想,尋思著能否將接口測試與冒煙測試結合起來,發掘一...
摘要:百度網盤提取碼最近一直關注貪心學院的機器學習訓練營,發現這門課講的很有深度,不僅適合職場也適合科研人員,加入行業拿到高薪僅僅是職業生涯的開始。 ??百度網盤??提取碼:u6C4最近一直關注貪心學院的機器學習訓練營,發現這門課講的很有深度,不僅適合職場也適合科研人員,加入AI行業拿到高薪僅僅是職業生涯的開始。現階段AI人才結...
閱讀 1325·2023-04-26 00:10
閱讀 2428·2021-09-22 15:38
閱讀 3745·2021-09-22 15:13
閱讀 3503·2019-08-30 13:11
閱讀 646·2019-08-30 11:01
閱讀 3028·2019-08-29 14:20
閱讀 3207·2019-08-29 13:27
閱讀 1725·2019-08-29 11:33