Java学习day05——方法及其调用重载
這幾天忙于置辦年貨,準(zhǔn)備過(guò)年用的東西,只能斷斷續(xù)續(xù)的學(xué),接下來(lái)估計(jì)也是這樣了,只能盡量有時(shí)間就更一些
01_1方法
1.方法就是用來(lái)完成解決某件事情或者實(shí)現(xiàn)某個(gè)功能的辦法
01_2方法的定義格式
修飾符 返回值類型 方法的名字 (參數(shù)列表…){
方法的功能主體
循環(huán),判斷,變量,比較,運(yùn)算
return 返回值 ;
}
- 實(shí)際參數(shù):就是實(shí)際參與運(yùn)算的。
- 形式參數(shù);就是方法定義上的,用于接收實(shí)際參數(shù)的。
01_03定義方法計(jì)算面積
public class MethodDemo{public static void main(String[] args){//調(diào)用方法, 方法執(zhí)行起來(lái)// 在方法main中,調(diào)用方法 getAreaint area = getArea(5,6);System.out.println("面積是: "+area);}/*要求: 計(jì)算一個(gè)長(zhǎng)方形的面積定義方法解決這個(gè)要求分析方法定義過(guò)程:1.明確方法計(jì)算后的結(jié)果的數(shù)據(jù)類型 int 定義格式對(duì)應(yīng)的就是返回值類型2.方法計(jì)算過(guò)程中,有沒(méi)有未知的數(shù)據(jù), 寬和長(zhǎng), 未知數(shù)據(jù)的數(shù)據(jù)類型 int未知數(shù)的變量,定義在方法的小括號(hào)內(nèi)*/public static int getArea(int w, int h){//實(shí)現(xiàn)方法的功能主體//int area = w * h;return w * h;} }01_4調(diào)用方法
1.在main函數(shù)中調(diào)用方法,讓方法執(zhí)行起來(lái)
2. 方法的形參
方法要什么參數(shù)我們就給什么類型的參數(shù)。
3. 方法的返回值
方法返回什么類型的值我們就用對(duì)應(yīng)的數(shù)據(jù)類型的變量來(lái)接收
01_5調(diào)用方法執(zhí)行流程
1.方法的定義是沒(méi)有順序的,寫(xiě)在main函數(shù)的上邊或者下邊都可以。
2.方法的執(zhí)行,是把實(shí)參傳遞給形參,從而來(lái)執(zhí)行的。
3.方法只有被調(diào)用才會(huì)執(zhí)行。
01_6方法調(diào)用的內(nèi)存圖
01_7方法調(diào)用的練習(xí)
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);}/*定義有返回值有參數(shù)方法,如求三個(gè)數(shù)的平均值明確方法計(jì)算后的數(shù)據(jù)類型, 返回值類型 double明確方法未知數(shù), 三個(gè)未知的整數(shù)*/public static double getAvg(double a, double b,double c){return (a+b+c)/3;}/*定義無(wú)返回值有參數(shù)方法,如打印指定M行,每行N個(gè)*號(hào)的矩形明確方法計(jì)算后結(jié)果,控制臺(tái)輸出圖形,沒(méi)有返回值的方法中有沒(méi)有未知數(shù),圖形行數(shù),和列數(shù),是未知的, 數(shù)據(jù)類型整數(shù)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();}}/*定義有返回值無(wú)參數(shù)方法,如鍵盤(pán)錄入得到一個(gè)整數(shù)明確方法計(jì)算后結(jié)果的數(shù)據(jù)類型 int明確有沒(méi)有未知數(shù),沒(méi)*/public static int getNumber(){Scanner sc = new Scanner(System.in);//int number = sc.nextInt();return sc.nextInt();}/*定義無(wú)返回值無(wú)參數(shù)方法,如打印3行,每行3個(gè)*號(hào)的矩形為什么沒(méi)有返回值:打印矩形 ,輸出效果,不需要將結(jié)果返回明確未知數(shù): 不需要未知數(shù)*/public static void printRect(){for(int i = 0 ; i < 3 ; i++){for(int j = 0 ; j < 3 ;j++){System.out.print("*");}System.out.println();}} }01_8方法的定義和使用的注意事項(xiàng)
return 下面不能有代碼
01_9方法的重載
在同一個(gè)類中,方法名相同,參數(shù)列表不同。與返回值類型無(wú)關(guān)。
參數(shù)列表不同:
* A:參數(shù)個(gè)數(shù)不同
* B:參數(shù)類型不同
* C:參數(shù)的順序不同(算重載,但是在開(kāi)發(fā)中不用)
案例代碼
01_10方法重載注意事項(xiàng)
1.參數(shù)列表必須不同
2.重載和參數(shù)變量名無(wú)關(guān)
3.重載和返回值類型無(wú)關(guān)
4.重載和修飾符無(wú)關(guān)
5.技巧: 重載看方法名和參數(shù)列表
01_11方法參數(shù)是基本數(shù)據(jù)類型
1.方法參數(shù)是基本類型時(shí),傳遞的是值。
01_12方法參數(shù)是引用數(shù)據(jù)類型
01_13隨機(jī)點(diǎn)名器
/*實(shí)現(xiàn)隨機(jī)點(diǎn)名器1.存儲(chǔ)所有學(xué)生姓名2.預(yù)覽所有學(xué)生姓名,遍歷數(shù)組3.隨機(jī)數(shù)作為索引,到數(shù)組中找元素將功能獨(dú)立出來(lái), 作成方法,調(diào)用方法即可定義三個(gè)功能, 用到同一個(gè)姓名數(shù)據(jù)姓名存儲(chǔ)到數(shù)組中,三個(gè)方法,使用一個(gè)數(shù)組中的數(shù)據(jù), 方法傳遞參數(shù)*/import java.util.Random;public class CallName{public static void main(String[] args){//定義數(shù)組,存儲(chǔ)學(xué)生姓名String[] names = new String[8];//調(diào)用添加姓名方法addStudent(names);//調(diào)用遍歷數(shù)組方法printStudentName(names);//調(diào)用隨機(jī)姓名的方法String name = randomStudentName(names);System.out.println(name);}/*定義方法,隨機(jī)數(shù),做索引,數(shù)組中找到學(xué)生姓名返回值? 學(xué)生姓名參數(shù)? 數(shù)組*/public static String randomStudentName(String[] names){Random ran = new Random();int index = ran.nextInt(names.length);return names[index];}/*定義方法,遍歷數(shù)組返回值? 沒(méi)有參數(shù)? 數(shù)組*/public static void printStudentName(String[] names){for(int i = 0 ; i < names.length ;i++){System.out.println(names[i]);}}/*定義方法,實(shí)現(xiàn)向數(shù)組中添加學(xué)生姓名返回值? 沒(méi)有,參數(shù)? 參數(shù)就是數(shù)組*/public static void addStudent(String[] names){names[0] = "張三";names[1] = "李四";names[2] = "王五";names[3] = "李蕾";names[4] = "韓梅梅";names[5] = "小名";names[6] = "老王";names[7] = "小華";}}01_14庫(kù)存案例代碼實(shí)現(xiàn)
/*實(shí)現(xiàn)商品的庫(kù)存管理功能:1.展示用戶選擇功能清單2.根據(jù)選擇的功能編號(hào),進(jìn)行不同的操作A. 展示所有庫(kù)存B. 修改庫(kù)存數(shù)量分析:1.展示用戶清單:輸出語(yǔ)句, 用戶輸入, 選擇功能序號(hào)2.根據(jù)選擇,調(diào)用不同的方法switch語(yǔ)句case 1 2 3A 展示庫(kù)存將存儲(chǔ)商品的數(shù)組,遍歷B 修改庫(kù)存修改所有的庫(kù)存數(shù)量*/import java.util.Scanner;public class Shopp{public static void main(String[] args){//使用數(shù)組,保存商品的信息//品名,尺寸,價(jià)格,庫(kù)存數(shù), 定義5個(gè)數(shù)組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://調(diào)用查看庫(kù)存清單方法printStore(brand,size,price,count);break;case 2://調(diào)用修改庫(kù)存的方法update(brand,count);break;case 3:return ;default:System.out.println("沒(méi)有這個(gè)功能");break;}}}/*定義方法,修改所有商品的庫(kù)存用戶輸入1個(gè),修改1個(gè)返回值,沒(méi)有參數(shù), 庫(kù)存數(shù)的數(shù)組, 品名數(shù)組*/public static void update(String[] brand, int[] count){//遍歷數(shù)組,遍歷到一個(gè),修改一個(gè)//接受鍵盤(pán)輸入Scanner sc = new Scanner(System.in);//遍歷數(shù)組for(int i = 0; i < brand.length ; i++){System.out.println("請(qǐng)輸入"+brand[i]+"的庫(kù)存數(shù)");//鍵盤(pán)輸入,錄入庫(kù)存, 存儲(chǔ)到庫(kù)存的數(shù)組中int newCount = sc.nextInt();count[i] = newCount;}//int chooseNumber = sc.nextInt();}/*定義方法,展示所有的庫(kù)存清單,遍歷返回值,沒(méi)有參數(shù), 數(shù)組*/public static void printStore(String[] brand,double[] size,double[] price,int[] count){System.out.println("----------商場(chǎng)庫(kù)存清單----------");System.out.println("品牌型號(hào) 尺寸 價(jià)格 庫(kù)存數(shù)");//定義變量,計(jì)算總庫(kù)存數(shù),和總價(jià)格int totalCount = 0;int totalMoney = 0;//遍歷數(shù)組,將數(shù)組中所有的商品信息打印出來(lái)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("總庫(kù)存數(shù): "+totalCount);System.out.println("商品庫(kù)存總金額: "+totalMoney);}/*定義方法,實(shí)現(xiàn)用戶的選擇功能,功能的需要返回來(lái)返回值, int參數(shù), 沒(méi)有*/public static int chooseFunction(){System.out.println("-------------庫(kù)存管理------------");System.out.println("1.查看庫(kù)存清單");System.out.println("2.修改商品庫(kù)存數(shù)量");System.out.println("3.退出");System.out.println("請(qǐng)輸入要執(zhí)行的操作序號(hào):");//接受鍵盤(pán)輸入Scanner sc = new Scanner(System.in);int chooseNumber = sc.nextInt();return chooseNumber;}}總結(jié)
以上是生活随笔為你收集整理的Java学习day05——方法及其调用重载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 7.volatile怎么通过内存屏障保证
- 下一篇: java美元兑换,(Java实现) 美元