1. 方法概述
1.1 方法的概念
方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
注意:
方法必须先创建才可以使用,该过程成为方法定义
方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用
2. 方法的定义和调用
2.1 无参数方法定义和调用
定义格式:
public static void 方法名 ( ) { // 方法体; }
范例:
public static void method ( ) { // 方法体; }
调用格式:
方法名();
范例:
method();
注意:
方法必须先定义,后调用,否则程序将报错
2.2 方法的调用过程
总结:每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完毕之后,会从栈内存中弹栈消失。
2.3 方法练习-奇偶数判断
需求:判断一个数是奇数还是偶数
代码:
public class Demo1Method { /* 带参数方法的定义格式: public static void 方法名 ( 参数 ) { … … } public static void 方法名 ( 数据类型 变量名 ) { … … } 带参数方法的调用格式: 方法名 ( 参数 ) ; 方法名 ( 变量名/常量值 ) ; tips: 参数可以是一个, 也可以是多个. 需求: 判断一个数是奇数还是偶数 */ public static void main(String[] args) { isEvenNumber(10); } public static void isEvenNumber(int num){ if(num % 2 == 0){ System.out.println("偶数"); }else{ System.out.println("奇数"); } } }
3. 带参数方法的定义和调用
3.1 带参数方法定义和调用
定义格式:
参数:由数据类型和变量名组成 - 数据类型 变量名
参数范例:int a
public static void 方法名 (参数1) { 方法体; } public static void 方法名 (参数1, 参数2, 参数3...) { 方法体; }
范例:
public static void isEvenNumber(int number){ ... } public static void getMax(int num1, int num2){ ... }
注意:
方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
方法定义时,多个参数之间使用逗号( ,)分隔
调用格式:
方法名(参数); 方法名(参数1,参数2);
范例:
isEvenNumber(10); getMax(10,20);
方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错
3.2 形参和实参
形参:方法定义中的参数
等同于变量定义格式,例如:int number
实参:方法调用中的参数
等同于使用变量或常量,例如: 10 number
3.3 带参数方法的练习-打印n-m之间所有的奇数
需求:设计一个方法(print) 用于打印 n 到 m 之间所有的奇数
- 思路:
1:定义方法,名称为print 2:为方法添加两个int类型的形参,准备接受调用者传递过来的实参 3:方法中设计for循环,循环从n开始,到m结束 4:循环中加入if判断,是奇数,则打印 5:main方法中调用print方法,传入两个实际参数
- 代码:
package com.itheima.method2; public class Demo2Method { public static void main(String[] args) { // 5:main方法中调用print方法,传入两个实际参数 print(20,10); } //1:定义方法,名称为print // 2:为方法添加两个int类型的形参,准备接受调用者传递过来的实参 public static void print(int n, int m){ System.out.println(n + "到" + m + "之间的奇数为:"); // 3:方法中设计for循环,循环从n开始,到m结束 for(int i = 20; i <= 10; i++){ // 4:循环中加入if判断,是奇数,则打印 if(i % 2 == 1){ System.out.println(i); } } } }
4. 带返回值方法的定义和调用
4.1 带返回值方法定义和调用(掌握)
定义格式
public static 数据类型 方法名 ( 参数 ) { return 数据 ; }
范例
public static boolean isEvenNumber( int number ) { return true ; } public static int getMax( int a, int b ) { return 100 ; }
注意:
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
调用格式
方法名 ( 参数 ) ; 数据类型 变量名 = 方法名 ( 参数 ) ;
范例
isEvenNumber ( 5 ) ; boolean flag = isEvenNumber ( 5 );
注意:
方法的返回值通常会使用变量接收,否则该返回值将无意义
4.2 带返回值方法的练习-求两个数的最大值(应用)
需求:设计一个方法可以获取两个数的较大值,数据来自于参数
- 思路:
定义一个方法,声明两个形参接收计算的数值,求出结果并返回
使用 if 语句 得出 a 和 b 之间的最大值,根据情况return具体结果
在main()方法中调用定义好的方法并使用 【 变量保存 】
- 代码:
/* 需求:设计一个方法可以获取两个数的较大值,数据来自于参数 1. 定义一个方法,声明两个形参接收计算的数值,求出结果并返回 2. 使用 if 语句 得出 a 和 b 之间的最大值,根据情况return具体结果 3. 在main()方法中调用定义好的方法并使用 【 变量保存 】 */ public static void main(String[] args) { // 3. 在main()方法中调用定义好的方法并使用 【 变量保存 】 System.out.println(getMax(10,20)); // 输出调用 int result = getMax(10,20); System.out.println(result); for(int i = 1; i <= result; i++){ System.out.println("HelloWorld"); } } // 方法可以获取两个数的较大值 public static int getMax(int a, int b){ if(a > b){ return a; }else{ return b; } } }