方法的概述
什么是方法?
-方法,也叫函数,是完成特定功能的代码块。
为什么需要方法?
-当一些代码被反复使用时,可以包他们提取出来,放到一个方法里面,以方法的形式来使用这些代 码
方法的好处
-大大提高代码的复用性,方便维护
方法的格式
修饰符 返回值的类型 方法名(参数类型 参数名....){
//方法体语句;
return 返回值;
}
eg:
public static void main(String[] args){
//方法体语句;
return;
}
方法的格式说明
1.修饰符:public static
2.返回值类型:方法执行结果的数据类型
3.方法名:方法的名称,符合标识符命名规则即可
4.参数列表:方法执行需要的条件
参数类型:可以是基本类型,也可以是引用类型
参数名:即变量名
5.方法体语句:完成特定功能的代码
6.return:意思是返回,用于结束方法
7.返回值:方法执行之后的结果,返回值给方法的使用这。若没有返回值,则它的返回值类型为void,比如main方法
方法的定义和调用
1.方法的定义
如果定义一个方法
-1.确定方法名
-2.确定返回值类型
-3.确定参数列表
例子:
//需求:求两个数字之和
/*
-注意:
-1.方法和方法之间是平级关系,不能嵌套定义
*/
public class MethodDemo01 {
public static void main(String[] args) {
//调用sum方法
/*
调用方法的注意事项:
-1.可以根据方法名直接调用方法
eg:sum();
-2.方法要什么就给什么
方法需要什么类型的参数,你就传入什么类型的参数
-3.方法传入什么类型的参数,你就用什么类型的参数接收
*/
//单独调用
sum(60,5);//65,不显示
//赋值调用
int result =sum(3,5);//8
System.out.println("result="+result);
//打印调用
System.out.println("两数之和:"+sum(10,5));//15
}
//定义sum方法
/*
分析:
-A.方法名:sum
-B.返回值类型:int
-C.参数列表:int a ,int b
*/
public static int sum(int a,int b){
int result;
result = a + b;
return result;
}
}
运行结果:
2.方法的调用
概念:使用方法的过程成为方法的调用
调用方法:
-A:通过方法名调用方法
-B:根据形式参数列表将实际参数传递给方法
形式参数:在方法定义时需明确方法参数的形式,比如参数的类型和个数,故方法定义的参数列表
方法调用过程:
-1.通过方法名调用方法
-2.传递实际参数
-3.方法执行时,实际参数值赋值给形式参数
-4.在方法中进行运算,并将结果赋值给返回值
-5.方法的返回值赋值给接收者x,如果没有返回值,则不需要接受
例子:
import java.util.Scanner;
//需求:键盘录入两个整数,比较他们是否相同
public class MethodDemo02 {
public static void main(String[] args) {
//2.从键盘中录入两个整数
//2.1新建键盘录入对象
Scanner sc =new Scanner(System.in);
//2.2提示用户录入两个整数并接收
System.out.println("请输入第一个整数:");
int num1 = sc.nextInt();
System.out.println("请输入第二个整数:");
int num2 = sc.nextInt();//num1 ,num2 是实参
//3.调用方法,接收结果,打印结果
boolean is =compare(num1,num2);
System.out.println(is);
}
//1.定义方法,用来比较两个整数是否相等
/*
定义方法实现,要确定三个部分
1.方法名:该方法要实现”比较“功能:compare
2.返回值类型:比较结果为是否相同,所以是boolean类型
3.参数列表:要实现比较功能,需要"两个整数"作为条件,
所以参数为:int a ,int b
*/
public static boolean compare(int a,int b){
/*
boolean result;
result = (a ==b);
return result;
*/
//优化代码
return a == b;
}
}
运行结果:
定义方法的注意事项:
-1.方法必须定义在类中
-2.方法之间是平级关系,不能嵌套
-3.没有返回值时,返回类型必须写成:void
-4.方法返回类型为void时,可以省略最后的return语句
-5.return语句后的值类型必须和方法的返回值类型一致
-6.return之后不能再放置语句
方法重载
什么是方法重载?
在同一个类中的多个方法,它们的方法名相同,参数列表不同,这样的情况,称为方法重载。方法重载与返回值类型无关。
参数列表不同:
参数的个数不同
对应位置的参数类型不同
方法签名不同:方法名+方法列表
为什么需要方法重载?
当实现功能相同,但具体的实现方法不同时,我们可以通过定义名称相同,参数(条件)不同的方法,来更好的识别和管理类中的方法。
例子:
//比较两个数是否相同
//需求:分别比较两个int/long/double类型的两个数是否相同
import java.util.Scanner;
public class MethodDemo03 {
public static void main(String[] args) {
//2.定义实参
//定义两个int类型的数
int num1,num2;
//定义两个long类型的数
long num3,num4;
//定义两个double类型的数
double num5,num6;
num1 =10;
num2 =20;
num3 =40L;
num4 =40L;
num5 =3.14;
num6 =5.6;
//3.调用方法,获取结果,打印结果
//调用方法,比较两个整数是否相同
boolean is ;
is =compera(num1 , num2);
System.out.println(is);//false
//调用方法,比较两个long类型的数是否相同
is =compera(num3,num4);
System.out.println(is);//true
//调用方法,比较两个double类型的数是否相同
is =compera(num5,num6);
System.out.println(is);//false
}
//定义方法,比较两个int类型的数是否相同
public static boolean compera(int a,int b){
System.out.println("比较两个int类型的数");
return a == b;
}
//定义方法,比较两个long类型的数是否相同
public static boolean compera(long a,long b){
System.out.println("比较两个long类型的数");
return a == b;
}
//定义方法,比较两个double类型的数是否相同
public static boolean compera(double a,double b){
System.out.println("比较两个double类型的数");
return a == b;
}
}
运行结果: