概述
方法就是完成某些特定功能的代码块,也就是其他语言所说的函数,在Java中称为方法
定义一个方法的格式
定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称,...){
方法体 return 返回值;
}
修饰符: public static
返回值类型: 方法最终产生的数据结果是什么类型
方法名称: 方法的名字,规则和变量一样,小驼峰书写格式
参数名称: 进入方法的数据对应的变量名称 Tips:参数如果有多个,使用逗号分隔
return: 有两个作用,停止当前方法和将后面的返回值还给调用处
返回值: 方法执行后最终产生的数据结果
Tips:return后面的“返回值”,必须和方法名称前面的“返回值类型”,保持对应
注意事项:
1、方法定义的先后顺序可不固定
2、方法的定义不能产生嵌套包含关系
3、方法定义好不会自动执行,需要进行方法调用
方法调用
方法的三种调用格式:
1、单独调用:方法名称(参数);
2、打印调用:System.out.println(方法名称(参数);
3、赋值调用:数据类型 变量名称 = 方法名称(参数);
public class Demo02MethodDefine {
public static void main(String[] args) {
//单独调用
sum(10,19);
//打印调用
System.out.println(sum(18,23));
//赋值调用
int a = sum(5,1);
System.out.println(a);
}
//定义一个两数相加的方法
public static int sum(int a, int b){
int x = a + b;
return x;
}
}
参数
有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就需要参数。例如两个数据相加,你需要提前给这两个数据。
无参数:小括号当中留空。一个方法不需要任何数据条件,自己完成独立的任务,就是无参数。例如固定带打印10次helloworld。
public class Demo03MethodParam {
public static void main(String[] args) {
method(1,99);
method1();
}
//定义一个有参数的方法
public static void method(int a, int b){
int result = a * b;
System.out.println(result);
}
//定义一个无参数的方法
public static void method1(){
for (int i = 0; i < 10; i++) {
System.out.println("hello world");
}
}
返回值
有返回值:方法中必须使用关键字return返回该值,返回类型为该方法的类型
无返回值:返回类型为void。
public class Demo03MethodReturn {
public static void main(String[] args) {
String a = tell();
System.out.println(a);
int b = sum(1,120);
System.out.println("sum方法的返回值是:"+b);
}
//定义一个无参数有返回值的方法
public static String tell(){
return "我的是一个有返回值的方法";
}
//定义一个有参数有返回值的方法
public static int sum(int a,int b){
return a+b;
}
}
注意事项
1、方法因该定义在类中,但是不能在方法中
2、方法定义的前后顺序无要求
3、方法定义之后不会执行,如果希望执行,调用方式有:单独调用、打印调用、赋值调用
4、如果方法有返回值,那么必须写上“return 返回值”,不能没有
5、return后面的返回值数据,必须和返回值类型对应
6、对于void没有返回值的方法,不能写return后面的返回值,只能写return自己用来结束方法
7、对于void方法中最后一行的return可以省略不写
8、一个方法中可以有多个return语句,但是必须保证同时只有一个会被执行,两个return不能连写
方法重载
方法重载(overload)是指同一个类中可以定义多个相同名字的方法,但是这些方法的参数列表是不同的。在调用时,会根据不同的参数列表匹配对应的方法
例如:在Person类中设计两个相同名字但参数列表不同的方法
public class TsetOverLoad {
public static void main(String[] args) {
System.out.println(multiply(10,19));
System.out.println(multiply());
multiply(20);
}
//定义一个有参有返回值的方法
public static int multiply(int a,int b){
return a * b;
}
//重载为无参数又返回值的方法
public static int multiply(){
return 0;
}
//重载为有参数无返回值的方法
public static void multiply(int a){
System.out.println(a);
}
}
输出结果
190
0
20
通过上面的例子,不难看出,重载就是在一个类中,有相同的函数名称,但形参不同的函。重载的结果,可以让一个程序段尽量减少代码和方法的种类。
方法重载的规则
方法名称必须相同。
参数列表必须不同。
方法的返回类型可以相同也可以不相同。
仅仅返回类型不同不足以称为方法的重载。
参数列表不同包括:个数不同、顺序不同、类型不同。
仅仅参数变量名称不同是不可以的。
跟成员方法一样,构造方法也可以重载。