提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、什么是方法?
方法是Java程序中最小的执行单元。
当程序中出现多次重复代码或具有独特功能的代码时可以考虑使用方法。
二、方法的构造和调用
1.方法的构造
1、按参数分
(1)无参构造
public static void getSum(){
int a=10;int b=5;
int c;
c=a+b;
System.out.println(c);
}
(2)有参构造
public static void getSum(int a,int b){
int c;
c=a+b;
System.out.println(c);
}
2、按返回值分
(1)无返回值的方法
public static void 方法名()/*括号里面可以带参数*/
{
方法体;
}
(2)带返回值的方法
public static 返回值类型 方法名()/*括号里面可以带参数*/
{
方法体;
return 返回值;
}
代码如下(示例):
public class Test
{
public static void wuCan(){
int n=23;
int m=90;
int sum1;
sum1=n+m;
System.out.println(sum1);
}//无参函数的构造,此无返回值
public static void getSum(int a,int b){//方法构造中,括号里面是形参
int sum;
sum=a+b;
System.out.println(sum);
}//有参函数的构造,此无返回值
public static int wuCan1(){
int x=23;
int y=90;
int sum2;
sum2=x+y;
return sum2;
}//无参函数的构造,此有返回值
public static int getSum1(int c,int d){
int sum3;
sum3=c+d;
return sum3;
}//有参函数的构造,此有返回值
public static void main(String[] args)
{
System.out.println("求两数和");
wuCan();
getSum(23,90);//将实参传入形参中;
System.out.println(wuCan1());
System.out.println(getSum1(23,90));
//方法调用时,实参的数量和类型必须与形参一一对应;
}
}
2.方法的调用
(1)直接调用 :
方法名(实参);
(2)赋值调用:
数据类型 变量名=方法名(实参);
(3)输出调用:
System.out.printf(方法名(实参));
代码如下(示例):
//计算一个季度的营业额
public class Test
{
public static int getSum(int num1,int num2,int num3){
int sum;
sum=num1+num2+num3;
return sum;
}
public static void main(String[] args){
getSum(7000,5000,6000);//直接调用,方法内没有输出,所以没有结果,一般用于无返回值的
int result=getSum(7000,5000,6000);
System.out.println(result);//赋值调用,定义了一个变量,将返回值赋值给变量
System.out.println(getSum(7000,5000,6000));//输出调用
}
}
注意:
1、方法必须先定义才能使用。
2、方法之间是平级的,不能嵌套。
public static void main(String[] args){
public ststic void fn(int a){
}
}这种就是错误的。
三、方法的重载
1、什么是重载
在同一个类中,定义了多个同名的方法,这些同名的方法有着相同的功能。
每个方法具有不同的参数类型或参数个数,这些同名的方法就构成了重载关系。
同一个类里面,方法名相同,参数不同的方法,与返回值无关。
参数不同:个数不同、类型不同、顺序(位置)不同。
错误示例:
public class Test{
public static int getSum(int a,int b){
//方法体;}
public static void getSum(int a,int b){
//方法体;
}}
此处只有返回值不同,但是重载与返回值无关,所以不构成重载。
2、重载有什么用
提高代码的复用性,可维护性。
方便调用方法,这些方法的功能相同,编写程序时不需要一个个寻找方法名。根据参数的个数、类型、顺序自动匹配方法,减少步骤。
3、构造重载
public class Test
{
public static int getSum(double a,int b){
//方法体;
}//记为方法1
public static int getSum(double a,double b){
//方法体;
}//与方法1参数类型不同
public static int getSum(double a,int b,int c){
//方法体;
}//与方法1参数个数不同
public static int getSum(int a,double b){
//方法体;
}//与方法1参数顺序不同
}