1.什么是方法?
:方法就是把一堆需要重复执行的代码封装起来,如果程序需要用到这段代码时,我们直接调用方法即可,不需要在重复写那些代码了。
2.好处
: 提高代码重用性,可读性,执行效率。
把一个方法比喻成一个榨汁机
材料:水果
产出物:果汁
程序中的方法:
- 参数(材料):进入方法的数据
- 返回值(产出物):方法根据参数处理后的结果
3.怎样定义一个方法?
访问修饰符 [static] 方法返回值类型 方法名 (参数类型 参数名){
代码块;
return 返回值; }
访问修饰符:常用的是public格式是固定的
- static:静态的,可加可不加
- 方法返回值类型:方法最终产生的结果是什么类型的
- 方法名:自己定义的名字
- 参数类型:进行方法的数据是啥类型的
- 代码块:自己封装的逻辑代码
- return:(1).把方法处理的结果返回给调用者 (2).结束当前方法
- 返回值:方法最终结果
- 一个方法里面不能定义方法,但是可以调用别的方法
*例如:
调用sum方法求两个数的和:
//一个静态方法只能调用静态变量
public static void main(String[] args) {
//调用方法
//定义变量接收方法给我们返回的值
//注意:变量的类型必须和方法的返回值类型一致
int result=sum(2,3);//实参,调用方法时,实际传入方法的参数。参数的顺序类型必须和形参的顺序,类型一致
System.out.println("a+b的和:"+result);
}
这里如果在main函数以外定义了两个变量,再在sum()里边传a,b。则错误,因为这样不是静态变量。因为主函数为static静态的,所以调用的sum方法也得是静态的才行,所以下面是求和sum方法:
//计算a+b的和
/**
* 返回值类型:int
* 方法名
* 参数:int a int b
*/
public static int sum(int a,int b){//形参,用于接收外部传入的数据
System.out.println("方法执行了");
int result = a+b;
return result;
}
- 方法的执行流程:
4.无返回值的方法
: 一个方法去执行一些操作,但是最终没有把处理的结果返回给调用者,只是执行了这个方法的代码块。
( 这种方法就是无返回值的方法)
定义:
访问修饰符 void 方法名(参数){
方法体
//return; 可写可不写,一般不写
}
*例如:(调用goodboy()方法打印十句“我是帅哥”。)
public static void main(String[] args) {
//调用方法
goodBoy();
}
//打印10边我是帅哥
//无返回值的方法
public static void goodBoy(){
for(int i=1;i<=10;i++){
System.out.println("我是帅哥"+i);
}
}
5.方法重载
对于类似相加的操作,因为我们参数列表不同,所以我定义了多个方法名。
(1)问题:
①太麻烦
②如果方法名过多,有可能出现调用错误的情况
(2)解决方式:
使用方法重载,我们只需要记住一个方法名就可以了。
方法重载:要求方法名必须相同,参数列表不同
什么是参数列表
1、参数个数不同
2、参数的类型不同
3、参数的类型顺序不同
*
注意:方法的重载和方法的返回类型没有关系
**举例说明:
1、参数个数不同
System.out.println(sum(1,2));
System.out.println(sum(1,2,3));
这是两个输出语句,目的是求和。
public static int sum(int a,int b){
return a+b;
}
但是参数个数不一样,调用方法名字一样都是sum,这时候就可以用到方法重载,省去了重新命名的麻烦。即:两个方法都叫sum,但不会冲突。
// 方法重载
public static int sum(int a,int b,int c){
return a+b+c;
}
2、参数的类型不同
//方法重载
public static int sum(double a,int b){
return a+b;
}
3、参数的类型顺序不同
//相比第2条,这也是重载,比第一条更是
public static int sum(int a,double b){
return a+b;
}
以下都不是重载:
public static int sum(int d,int c){
return d+c;
}
//参数名字无关,这不是重载
public static double sum(int a,double b){
return 0;
}
//返回值类型无关,这不是重载
- *赠送练习题:
与void add(int a,char b,double c){}
构成重载的有:
- void add(int x,char y,double z){}
- int add(int a,double c,char b){}
- void add(int a,double c,char b){}
- boolean add(int c,char b){}
- void add(double c){}
- double add(int x,char y,double z){}
- void adds(){double c}
答案:1.不是 ;2.是 ;3.是 ;4.是 ;5.是 ;6. 不是; 7.不是(不要忘了方法名必须相同)
来源:CSDN
作者:阿文小周铺
链接:https://blog.csdn.net/qq_44046091/article/details/104579690