0
点赞
收藏
分享

微信扫一扫

JAVA教程 从入门到精通 Day5

三分梦_0bc3 2022-03-12 阅读 67

第三章 方法

4.1 方法的概述

**定义:**方法是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集

注意:

  • 方法定义在类中方法外,方法本身不能嵌套
  • 方法不调用不执行

优点:

  • 提高了代码的复用性
  • 提供了程序的安全性

4.2 方法的定义和调用

4.2.1 方法的定义

1、没有返回值类型的方法
格式:
修饰符 void 方法名(参数列表){
	实现功能的代码块;
    [return;]
}
范例:
//输出m行乘法表

public class Test13 {
    public static void main(String[] args) {
       print(2);
    }
    public static void print(int m){
        for (int i=1;i<=m;i++){
            for (int j=1;j<=i;j++){
                System.out.print(j+"*"+i+"="+i*j+"\t");
            }
            System.out.println();
        }
    }
}
2、有返回值类型的方法
格式:
修饰符 数据类型 方法名(参数列表){
	实现功能的代码块;
	return 返回值;
}
范例:
//获取两个数中的较大值
public class Test11 {
    public static void main(String[] args) {
        int max=getMax(4,9);
        System.out.println(max);
    }
    public static int getMax(int x,int y){
        return Math.max(x, y);
    }
}

参数列表 :

功能定义的时候是否存在未知的数据,有可能会改变的数据,如果存在,参数列表中定义参数,如果不存在,可以不定义参数。

**格式:**数据类型1 参数名2,数据类型2 参数名2……

  • 相当于局部变量的声明 ===> 作用域只属于当前的方法
  • 数据类型 : 可以为基本数据类型|引用数据类型

4.2.2 方法的调用

方法的调用 :

执行方法中的代码

  • 基础调用 : 方法名(参数列表);
  • 赋值调用 : 数据类型 变量名 = 方法名(参数列表);
  • 输出调用 : System.out.println(方法名(参数列表));

赋值调用与输出调用关注返回值,接收使用了返回值,基础调用只是执行方法中的代码没有接收返回值

注:

  • 方法必须先定义再调用,否则程序将报错

参数列表 : 功能定义的时候是否存在未知的数据,有可能会改变的数据,如果存在,参数列表中定义参数,如果不存在,可以不定义参数。
**格式:**数据类型1 参数名2,数据类型2 参数名2……

  • 相当于局部变量的声明 ===> 作用域只属于当前的方法
  • 数据类型 : 可以为基本数据类型|引用数据类型
public class MethodDemo1 {
    public static void main(String[] args) {
		//常量的调用
        isEvenNumber(10);	//实参 
        //变量的调用
        int number=10;
        isEvenNumber(number);	//实参		
    }
    //需求:定义一个方法,用该方法接受一个数据,判断该数据是否是偶数
    public static void isEvenNumber(int number){	//形参
        if(number%2==0){
            System.out.println(true);
        }else{
            System.out.println(false);
        }
    }
}

4.3 形参和实参

  • 形参

定义方法时候()中的参数–>局部变量的声明

等同于变量定义格式 例如:int number

  • 实参

调用方法时候()中的参数–>局部变量的赋值

等同于使用变量或者常量 例如:number 或者 10

注:

形参与实参之间要求一一对应

public class MethodDemo1 {
    public static void main(String[] args) {
		//常量的调用
        isEvenNumber(10);	//实参 
        //变量的调用
        int number=10;
        isEvenNumber(number);	//实参		
    }
    //需求:定义一个方法,用该方法接受一个数据,判断该数据是否是偶数
    public static void isEvenNumber(int number){	//形参
        if(number%2==0){
            System.out.println(true);
        }else{
            System.out.println(false);
        }
    }
}

兼容类型 :

  • 参数兼容类型

    • 形参类型 >= 实参类型
  • 返回值兼容类型

    • 接收返回值的变量类型>=方法的返回值类型>= return后面结果的类型

4.4 方法重载

4.4.1 方法重载的概述

方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载

  • 一个类中的多个方法
  • 多个方法具有相同的方法名
  • 多个方法的参数列表不同
    • 参数数量不同、参数类型不同、不同类型的参数顺序不同

4.4.2 方法重载的特点

  • 重载仅对应方法的定义 与方法的调用无关
  • 重载仅针对同一个类中方法的名称与参数列表进行识别,与修饰符、参数名、返回值、无关
  • 重载方法的调用 根据实参区分
范例:
public class MethodDemo5 {
    public static void main(String[] args) {
        int sum=add(12,23);
        double sum1=add(1.2,5.3);
        int sum2=add(12,85,96);
        System.out.println(sum);
        System.out.println(sum1);
        System.out.println(sum2);
    }
    //需求一:求两个int类型数据和的方法
    public static int add(int a,int b){
        return a+b;
    }
    //需求二:求两个double类型数据和的方法
    public static double add(double a,double b){
        return a+b;
    }
    //需求三:求三个int类型数据和的方法
    public static int add(int a,int b,int c){
        return a+b+c;
    }
}

4.4.3 递归 (了解)

方法的内部自己调用自己

  • 优点 :
    程序设计更简单,简洁
  • 缺点 :
    使用不好,极有可能造成内存的溢出
  • 实现组成:
    • 基线条件|递归头 : 停止自己调用自己的条件
    • 递归条件|递归体 : 自己调用自己
  • 执行过程 :
    • 递归前进段 : 不停的自己调用自己
    • 临界条件 : 停止自己调用自己的条件
    • 递归后退段 : 从临界条件开始,不停的将结果返回给上一层
范例:
public class Class039_Recurtion{
	
	public static void main(String[] args) {
		System.out.println(rec(-1));;
	}
	
	//求阶乘 : 求某一个数阶乘
	public static int rec(int i){
		if(i<=0){
			System.out.println("数据i为负数,不能求阶乘!!!");
			return 0;
		}
		if(i==1){
			return 1;
		}
		return i*rec(i-1);
	}
}
举报

相关推荐

0 条评论