Java(7)方法

最后都变了- 提交于 2020-03-01 07:48:09

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){}
    构成重载的有:
  1. void add(int x,char y,double z){}
  2. int add(int a,double c,char b){}
  3. void add(int a,double c,char b){}
  4. boolean add(int c,char b){}
  5. void add(double c){}
  6. double add(int x,char y,double z){}
  7. void adds(){double c}

答案:1.不是 ;2.是 ;3.是 ;4.是 ;5.是 ;6. 不是; 7.不是(不要忘了方法名必须相同)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!