-
概念:实现特定功能的一段代码,可反复使用。
-
定义语法:
public static void 方法名称(){
//方法主体
}
- 经验:将需要在多个位置重复使用的一组代码,定义在方法内部。
- 方法定义在类的内部,与main方法并列。
//位置1
public class TestDefinitionFunction{
//位置2
public static void main(String[] args){
//位置3
}
//位置4
}
//位置5
正确位置:位置2、位置4
定义方法与调用public class TestFunction{
public static void main(String[] args){
System.out.println("浩荡离愁白日斜");
printSign();
System.out.println("吟鞭东指即天涯");
printSign();
System.out.println("落红不是无情物");
printSign();
System.out.println("化作春泥更护花");
printSign();
}
//定义:打印10格分隔符的函数
public static void printSign(){
for(int i=1;i<=10;i++){
System.out.print("-");
}
System.out.println();
}
}
//运行结果:
注意:调用方法时,会优先执行方法内部代码,结束后,返回到方法调用处,继续向下执行
方法的参数- 多数情况下,方法与调用者之间需要数据的交互;调用者必须提供必要的数据,才能使方法完成相应的功能。
- 调用方法时,所传入的数据被称为“参数”。
-
定义语法:
public static void 方法名称(形式参数){ //方法主体 } //经验:“形参”等价于"局部变量的声明" -
调用语法:
方法名称(实际参数);
-
经验:“实参”等价于“局部变量的赋值”
-
作用:方法的参数可以让代码功能更灵活、普适性更高,易于修改及维护。
public class TestFunction{
public static void main(String[] args){
System.out.println("浩荡离愁白日斜");
printSign(10);//实际参数:10调用带参方法时,必须传入实际参数,为形式参数赋值
System.out.println("吟鞭东指即天涯");
System.out.println("落红不是无情物");
System.out.println("化作春泥更护花");
}
//定义:打印10格分隔符的函数
public static void printSign(int count){//形式参数:int count当方法被执行时,循环count次
for(int i=1;i<=count;i++){
System.out.print("-");
}
System.out.println();
}
}
//运行结果:
多个参数调用
public class TestFunction{
public static void main(String[] args){
System.out.println("浩荡离愁白日斜");
printSign(10,"&");//实际参数:10,&,调用带参方法时,必须依次传入实际参数,类型、个数、顺序、必须与形参对应
System.out.println("吟鞭东指即天涯");
System.out.println("落红不是无情物");
System.out.println("化作春泥更护花");
}
//定义:打印10格分隔符的函数
public static void printSign(int count,char sign){//形式参数:int count,char sign,当方法被执行时,循环count次sign
for(int i=1;i<=count;i++){
System.out.print(sign);
}
System.out.println();
}
}
//运行结果:
- 经验:根据具体的业务需求,来定义方法的参数。
-
概念:方法执行后的返回结果。
-
方法执行后,一些情况下无需返回结果;另一些情况下则必须。
-
例如:
-
存款操作无需返回结果;
-
取款操作必须返回结果。
-
-
定义语法:
public static 返回值类型 方法名称(形式参数列表){//规定返回值的具体类型(基本、引用、void) //方法主体 return value;//返回值 //根据需求返回一个结果(值) } -
调用语法:
变量=方法名称();//变量类型与返回值类型一致。
-
需求:定义方法,计算两个整数的和,并返回结果,在main中打印。
-
public class TestResultValue{ public static void main(String[] args){ int result=add(5,6);//接收返回值:方法调用的表达式、最终既代表了所有返回的结果。 System.out.println(result); } public static int add(int a,int b){//返回值类型:定义是,即约定了返回值的结果类型。 return a+b;//返回值:一句返回值类型匹配的具体结果在return关键字的后面追加具体值 } }
- 注:一个方法只能有一个返回值
- return的两种用法:
- 应用在具体有返回值类型的方法中:
- return value;//表示结束当前方法、并伴有返回值,返回到方法调用处。
- 应用在没有返回值类型(void)的方法中:
- return;//表示结束当前方法,直接返回到方法调用处。
-
注意:一个类中可以定义多个方法,方法之间属于并列关系,不可嵌套。
-
经验:一个方法只做一件事。
-
好处:
- 减少代码冗余。
- 提高复用性。
- 提高可读性。
- 提高可维护性。
- 方便分工合作。
-
重载(Overload):一个类中定义多个相同名称的方法。
-
要求:
- 方法名称相同。
- 参数列表不同(类型、个数、顺序)。
- 与访问修饰符、返回值类型无关。
-
调用带有重载的方法时,需要根据传入的实参去找到与之匹配的方法。
-
好处:灵活、方便、屏蔽使用差异。
-
思考:以下方法是不是重载
-
public void m(int a){} public void m(int b){}-
两个方法的方法名称和参数列表都相同,只有参数名称不一样,编译报错。
-
注意:只是参数名称不同,并不能构成方法的重载。
-



