復(fù)習(xí)簡單方法度使用
方法調(diào)用? ? ? ? 代碼:/*
* 復(fù)習(xí)一下此前學(xué)習(xí)的方法基礎(chǔ)入門知識。*
* 定義格式:* public static void 方法名稱() {
? ? ? ? 方法體}
*調(diào)用格式:* 方法名稱();
*
* 注意事項:* 1、方法定義的先后順序無所謂。* 2、方法定義必須是挨著的,不能在一個方法的內(nèi)部定義另外一個方法。* 3、方法定義之后,自己不會執(zhí)行的;如果希望執(zhí)行,一定要進(jìn)行方法的調(diào)用* */
public class Demo01Method {
public static void main(String[] args) {
printMethod();
? ? }
public static void printMethod() {
for (int j =0;j <5; j++) {
for (int i =0; i <20; i++) {
System.out.println("*");
? ? ? ? ? ? }
System.out.println();
? ? ? ? }
}
}
方法的定義格式+方法的三種調(diào)用格式
代碼:/*
* 方法其實就是若干語句*
* 方法好是一個工廠* 蒙牛工廠? ? ? 原料:奶牛、飼料、水*? ? ? ? ? ? ? 產(chǎn)出物:奶制品* 鋼鐵工廠? ? ? 原料:鐵礦石、煤炭*? ? ? ? ? ? ? 產(chǎn)生物:鋼鐵建材*
* 參數(shù)(原料):就是進(jìn)入方法的數(shù)據(jù)。* 返回值(產(chǎn)生物):就是從方法種出來的數(shù)據(jù)。*
* 定義方法的完整格式:* 修飾符 返回值類型 方法名稱(參數(shù)類型 參數(shù)名稱,...){
*
*? ? ? 方法體*? ? ? return 返回值;* }
*
* 修飾符:現(xiàn)階段的固定寫法,public static
* 返回值類型:也就是方法最終產(chǎn)生的數(shù)據(jù)結(jié)果是什么類型* 方法名稱:方法的名字,規(guī)則和變量一樣,小駝峰* 參數(shù)類型:進(jìn)入方法的數(shù)據(jù)是什么類型* 參數(shù)名稱:進(jìn)入方法的數(shù)據(jù)對應(yīng)的變量名稱* ps:參數(shù)如果有多個,使用逗號進(jìn)行分隔* 方法體:方法需要做的事情,若干行代碼* return:兩個作用,第一停止當(dāng)前方法,第二將后面的返回值還給調(diào)用處* 返回值:也就是方法執(zhí)行后最終產(chǎn)生的數(shù)據(jù)結(jié)果*
* 注意:return后面的“返回值”,必須和方法名稱前面的“返回值類型”,保持對應(yīng)*
* 定義一個兩個int數(shù)字相加的方法,三要素:* 返回值類型:int
* 方法名稱:sum
* 參數(shù)列表:int a, int b
*
* 方法的三種調(diào)用格式。* 1、單獨調(diào)用:方法名稱(參數(shù));* 2、打印調(diào)用:System.out.println(方法名稱(參數(shù)))
* 3、賦值調(diào)用*
* 注意:此前學(xué)習(xí)的方法,返回值類型固定寫為viod,這種方法只能夠單獨調(diào)用,不能進(jìn)行打印調(diào)用或者賦值調(diào)用* */
public class Demo02MethodDefine {
public static void main(String[] args) {
// 單獨調(diào)用
? ? ? ? sum(10, 20);
? ? ? ? System.out.println("=======");
? ? ? ? // 打印調(diào)用
? ? ? ? System.out.println(sum(10, 20)); // 30
? ? ? ? System.out.println("=======");
? ? ? ? // 賦值調(diào)用
? ? ? ? int number =sum(15, 25);
? ? ? ? number +=100;
? ? ? ? System.out.println("變量的值:" + number); // 140
? ? }
public static int sum(int a, int b) {
System.out.println("方法執(zhí)行啦!");
? ? ? ? int result = a + b;
? ? ? ? return result;
? ? }
}
方法的調(diào)用流程圖解

對比有參數(shù)和無參數(shù)? ? ? 代碼:/*
* 有參數(shù):小括號當(dāng)中有內(nèi)容,當(dāng)一個方法需要一些數(shù)據(jù)條件,才能完成任務(wù)的時候,就是有參數(shù)。* 例如兩個數(shù)字相加,必須知道兩個數(shù)字是各自多少,才能相加。*
* 無參數(shù):小括號當(dāng)中留空。一個方法不需要任何數(shù)據(jù)條件,自己就能獨立完成任務(wù),就是無參數(shù)。* 例如定義一個方法,打印固定10次HelloWorld。* */
public class Demo03MethodParam {
public static void main(String[] args) {
method1(10, 20);
? ? }
// 兩個數(shù)字相乘,做乘法,必須知道兩個數(shù)字各自是多少,否則無法進(jìn)行計算
? ? // 有參數(shù)
? ? public static void method1(int a, int b) {
int result = a * b;
? ? ? ? System.out.println("結(jié)果是:" + result);
? ? }
// 例如打印輸出固定10次文本字符串
? ? public static void method2() {
for (int i =0; i <10; i++) {
System.out.println("Hello,World!" + i);
? ? ? ? }
}
}
對比有返回值和無返回值? ? ? ? ? ? 代碼:/*
* 題目要求:定義一個方法,用來【求出】兩個數(shù)字之和。(你幫我算,算完之后把結(jié)果告訴我。)
* 題目變形:定義一個方法,用來【打印】兩個數(shù)字之和。(你來計算,算完之后你自己負(fù)責(zé)顯示結(jié)果,不用告訴我。)
*
* 注意事項:* 對于又返回值得方法,可以使用單獨調(diào)用、打印調(diào)用或者賦值調(diào)用。* 但是對于無返回值的方法,只能使用單獨調(diào)用,不能使用打印調(diào)用或者賦值調(diào)用* */
public class Demo04MethodReturn {
public static void main(String[] args) {
// 我是main方法,我來調(diào)用你。
? ? ? ? // 我調(diào)用你,你來幫我計算一下,算完了之后,把結(jié)果告訴我的num變量
? ? ? ? int num =getSum(10, 20);
? ? ? ? System.out.println("返回值是:" + num);
? ? ? ? System.out.println("======");
? ? ? // printSum();
? ? ? ? System.out.println("======");
? ? ? ? System.out.println(getSum(2, 3)); // 正確寫法
? ? ? ? getSum(3, 5); // 正確寫法,但是返回值沒有用到
? ? ? ? System.out.println("======");
? ? ? ? // 對于void沒有返回值的方法,只能單獨,不能打印或者賦值
? ? ? ? // System.out.println(prinSum(2,3)); // 錯誤寫法!
? ? ? ? //System.out.println(void);
? ? ? ? // int num2 = printSum(10,20); // 錯誤寫法!
? ? ? ? // int num3 = void;
// void num4 = void;
? ? }
// 我是一個方法,我負(fù)責(zé)兩個數(shù)字相加。
? ? // 我有返回值int,誰調(diào)用我,我就把計算結(jié)果告訴誰
? ? public static int getSum(int a, int b) {
int result = a + b;
? ? ? ? return result;
? ? }
// 我是一個方法
}
方法練習(xí)一_比較兩個數(shù)字? ? ? ? 代碼:/*
* 題目要求:* 定義一個方法,用來判斷兩個數(shù)字是否相同* */
public class Demo01MethodSame {
public static void main(String[] args) {
System.out.println(isSame(10, 20)); //? false
? ? ? ? System.out.println(isSame(20, 20)); // true
? ? }
/*
? ? *三要素:? ? * 返回值類型:boolean
? ? * 方法名稱:isSame
? ? * 參數(shù)類表:int a, int b
* */
? ? public static boolean isSame(int a, int b) {
/*? boolean same;
if (a == b) {
same = true;
} else {
same = false;
}*/
/* boolean same = a == b ? true : false;
boolean same = a == b;*/
? ? ? ? return a == b;
? ? }
}
方法練習(xí)2_求出1到100的和? ? ? ? 代碼:/*
* 題目要求:* 定義一個方法,用來求出1-100所有數(shù)字的和值。* */
public class Demo01MethodSum {
public static void main(String[] args) {
System.out.println("結(jié)果是:"+getSum());
? ? }
/*
? ? *三要素? ? * 返回值:有返回值,計算結(jié)果是一個int數(shù)字? ? * 方法名稱:getSum
? ? * 參數(shù)列表:數(shù)據(jù)范圍已經(jīng)確定,是固定的,所以不需要告訴我任何條件,不需要參數(shù)* */
? ? public static int getSum() {
int sum =0;
? ? ? ? for (int i =1; i <=100; i++) {
sum += i;
? ? ? ? }
return sum;
? ? }
}
方法練習(xí)3_打印指定次數(shù)? ? ? ? 代碼:/*
* 題目要求:
* 定義一個方法,用來打印指定次數(shù)的HelloWorld
* */
public class Demo01MethodPrint {
public static void main(String[] args) {
printCount(10);
? ? }
/*
? ? * 三要素? ? * 返回值類型:只是進(jìn)行一大堆打印操作而已,沒有計算,也沒有結(jié)果要告訴調(diào)用處? ? * 方法名稱:printCount
? ? * 參數(shù)列表:到底要打印多少次?必須告訴我,否則我不知道多少次,沒法打印。次數(shù):int
* */
? ? public static void printCount(int num) {
for (int i =0; i < num; i++) {
System.out.println("Hello,World" + (i +1));
? ? ? ? }
}
}
方法的注意事項:?????/*
* 使用方法的時候,注意事項:
*
* 1、方法英愛定義在類當(dāng)中,但是不能在方法當(dāng)中在定義方法。不能嵌套。* 2、方法定義的前后順序無所謂。* 3、方法定義之后不會執(zhí)行,如果希望執(zhí)行,一定要調(diào)用:單獨調(diào)用、打印調(diào)用、賦值調(diào)用。* 4、如果方法有返回值,那么必須寫上"return返回值;"不能沒有* 5、、return后面的返回值數(shù)據(jù),必須和方法的返回值類型,對應(yīng)起來。* 6、對于一個void沒有返回值的方法,不能寫return后面的返回值,只能寫return自己。* 7、對于void方法當(dāng)中最后一行的return可以省略不寫。* 8、一個方法當(dāng)中可以有多個return語句,但是必須保證同時只能有一個會被執(zhí)行到,兩個return不能連寫。* */
public class Demo01MethodNotice {
public static int method1() {
return 10;
? ? }
public static void method2() {
//? return 10; // 錯誤的寫法!方法沒有返回值,return后面不能寫返回值。
? ? ? ? return; // 沒有返回值,只是結(jié)束方法的執(zhí)行而已。
? ? }
public static void method3() {
System.out.println("AAA");
? ? ? ? System.out.println("BBB");
? ? ? ? //? return; // 最后一行的return可以省略不寫
? ? }
public static int getMax(int a, int b) {
/* int max;
if(a > b) {
max = a;
}else {
max = b;
}
return max;*/
? ? ? if (a > b) {
return a;
? ? ? }else {
return b;
? ? ? }
}
}