方法概述
//定义两个变量
int a = 10;
int b = 20;
//获取两个数中的较大值
int max = a > b?a:b;
//输出结果
System.out.println("max:" + max);
1.什么是方法
方法(method)是将具有独立功能的代码块组织成为一个 整体,使其具有特殊功能的代码集。
注意:
- 方法必须先创建才可以使用,该过程称为方法定义;
- 方法创建并不是直接运行的,需要手动使用后才执行,该过程称为方法调用;
2.方法的定义和调用
2.1方法定义
- 格式:
public static void 方法名(){
//方法体
}
-范例:
public static void isEvenNumber(){
//方法体
}
2.2方法调用
- 格式:方法名();
- 范例:isEvenNumber();
注意:
方法必须先定义后调用,否则程序将报错;
public static void main(String[] args) {
isEvenNumber();
}
//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
public static void isEvenNumber() {
//定义变量
int number = 10;
//判断该数据是否是偶数
if (number % 2 == 0) {
System.out.println(true);
} else {
System.out.println(false);
}
2.3方法练习
需求:设计一个方法用于打印两个数中的较大数
思路:
①定义一个方法,用于打印两个数字中的较大数,例如getmax()
public static void getMax(){
}
②方法中定义两个变量,用于保存两个数字
public static void getMax(){
int a = 10;
int b = 20;
}
③使用分支语句分两种情况对两个数字的大小关系进行处理
if(a>b){
System.out.println(a);
}else{
System.out.println(b);
}
④在main()方法中调用定义好的方法
public static void main(String[]args){
//调用方法
getMax();
}
3.带参数方法的定义和调用
3.1带参数方法定义
-
格式:public static void 方法名(参数){… …}
-
格式(单个参数):
public static void 方法名 (数据类型 变量名){… …} -
范例(单个参数):
public static void isEvenNumber( int number ){… …} -
格式(多个参数):
public static void 方法名 (数据类型 变量名1,数据类型 变量名1…){… …} -
范例(多个参数):
public static void getMax( int number , int number){… …}
注意:
1、方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
2、方法定义时,多个参数之间使用逗号(,)分隔
3.2带参数方法调用
格式: 方法名(参数);
-
格式(单个参数):方法名(变量名/常量值);
-
范例(单个参数):isEvenNumber(5);
-
格式(多个参数):方法名(变量名1/常量值1,变量名2/常量值2);
-
范例(多个参数):getMax(5,6);
注意:方法调用时,参数的数量与类型必须与方法定义 中的设置相匹配,否则程序将报错;
3.3形参与实参
形参:方法定义中的参数
等同于变量定义格式,例如:(int number)
实参:方法调用中的参数
等同于使用变量 或 常量,例如:10 number
public static void main(String[] args) {
//直接传递常量
isEvenNumber(10);
//定义变量,传递
int number = 10;
isEvenNumber(number);
}
//接收一个变量,判断该数据是否是偶数
public static void isEvenNumber(int number) {
if (number%2 == 0){
System.out.println(true);
}else{
System.out.println(false);
}
}
4.带返回值的方法的定义和调用
4.1带返回值的方法定义
格式:public static数据类型 方法名(参数){
return数据;
}
范例1:public static boolean isEvenNumber(int number){
return true;
}
范例2:public static int getMax(int a,int b){
return 100;
}
- 方法定义时return后面对的返回值与方法定义上的数据类型要匹配,否则程序将报错
4.2带返回值方法调用
格式:数据类型 变量名 = 方法名(参数);
范例:boolean flag = isEvenNumber(5);
注意:方法的返回值通常会使用变量接收,否则该返回值将无意义
练习1:
pulic class MethodDemo{
public static void main(String[] args) {
//1:方法名(参数);
//isEvenNumber(10);
//true
//2.数据类型 变量名 = 方法名(参数);
boolean flag = isEvenNumber(10);
//boolean flag = true;
System.out.println(flag);
}
//需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数,并返回真假值
public static boolean isEvenNumber(int number) {
if (number % 2 == 0){
return true;
}else{
return false;
}
}
}
练习2:
public class MethodTest{
public static void main(String[]args){
//在main()方法中调用定义好的方法并使用变量保存
int result = getMax(a:10,b=20);
System.out.println(result);
//以上两行代码简写方式:
System.out.pritln(getMax(a:10,b=20));
//定义一个方法,用于获取两个数字中的较大数
public static int getMax(int a,int b){
//使用分支语句分两种情况对两个数字的大小关系进行处理
//根据题设分别设置两种情况下对应的返回结果
if(a > b){
return a;
}else{
return b;
}
}
5.方法的注意事项
5.1书写注意事项
- 方法不能嵌套定义
- void表示无返回值,可省略return,如单独的书写return,后面不加数据
5.2方法的通用格式
public static 返回值类型 方法名(参数){
方法体;
return 数据;
}
-
public static 修饰符,目前记住这个格式
-
返回值类型:方法操作完毕之后返回的数据的数据类型
如果方法操作完毕,没有数据返回,这里写void,而且方法中一般不写return -
方法名:调用方法时候使用的标识
-
参数: 有数据类型和变量名组成,多个参数之间用逗号隔开
-
方法体:完成功能的代码块
-
return :如果方法操作完毕,有数据返回,用于数据返回给调用者
-
定义方法时,要做到两个明确:
-明确返回值类型,主要是明确方法操作完毕之后是否有数据返回,如没有,写void;如有,写对应的数据类型
-明确参数,主要是明确参数的类型和数量 -
调用方法时
-void类型的方法,直接调用即可
-非void类型的方法,推荐用变量接收调用
6. 方法重载
6.1概述
方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载
①多个方法在同一类中
②多个方法具有相同的方法名
③多个方法的参数相同,类型不同 或 数量不同
6.2方法重载特点
①重载仅对应方法的定义,与方法的调用无关,调用方式参照标准方式
②重载仅针对一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载
6.3方法重载练习
练习:
public static void main(String[]args){
//调用方法
System.out.println(compare(10,20));
System.out.println(compare((byte)10,(byte)20));
System.out.println(compare((short)10,(short)20));
System.out.println(compare(10L,20L));
//int
public static boolean compare(int a,int b){
System.out.println(“int”);
return a == b;
//byte
public static boolean compare(byte a,byte b){
System.out.println(“byte”);
return a == b;
}
//short
public static boolean compare(short a,short b){
System.out.println(“short”);
return a == b;
}
//long
public static boolean compare(long a,long b){
System.out.println(“long”);
return a == b;
}
7.方法的参数传递
7.1基本类型
对于基本数据类型的参数,形式参数的改变,不影响实际参数的值
备注翻译:change 改变
public class ArgsDemo01{
public static void main(String[] args) {
int number = 100;
System.out.println("调用change方法前:"+ number);
change(number);
System.out.println("调用change方法后:"+ number);
}
public static void change(int number){
nunmber = 200;
}
}
7.2方法参数传递(引用类型)
对于引用类型的参数,形式参数的改变,影响实际参数的值