Java基础知识(JavaSE)总结05

本文深入讲解Java中的方法概念,包括方法的定义、调用、参数传递、返回值处理及方法重载等内容,帮助初学者理解方法如何提高代码复用性和模块化。

一阶段: JavaSE学习05

方法:(重点,以后经常使用)

​ 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。

方法定义和调用

​ 1.方法必须先创建才可以使用,该过程称为方法定义

​ 2.方法创建后并不是直接可以运行的,需要手动使用后,才执行, 该过程称为方法调用

注意:方法必须先定义,后调用,否则程序将报错

方法调用过程:

​ 总结:每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完

之后,会从栈内存中弹栈消失。

使用方法时有两个明确(重点)

1.明确返回值类型

2.明确参数

1.无参数方法:

定义格式:

public static void 方法名 ( ) {
// 方法体;
}

调用格式:

方法名();

2.带参数方法:

定义格式:

public static void 方法名 (参数1) {
方法体;
}

public static void 方法名 (参数1, 参数2, 参数3…) {
方法体;
}

注意:

​ 方法定义时,参数中的数据类型与变量名都不能缺少,多个参数之间使用逗号( ,)分隔.

​ 方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错

形参和实参:

​ 1.形参(全称形式参数):方法定义中的参数

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

​ 2.实参(全称实际参数):方法调用中的参数

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

3.带返回值方法定义和调用(掌握)

定义格式:

public static 数据类型 方法名 ( 参数 ) {
return 数据 ;
}

调用格式:

方法名 ( 参数 ) ;
数据类型 变量名 = 方法名 ( 参数 ) ;

注意:

​ 1.方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错

​ 2.方法的返回值通常会使用变量接收,否则该返回值将无意义

4.方法的通用格式:

public static 返回值类型 方法名(参数) {
方法体;
return 数据 ; //数据类型与返回值类型保持一致
}

/*解释:*/
//public static 修饰符,目前先记住这个格式
//返回值类型: 方法操作完毕之后返回的数据的数据类型 如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return       
//方法名:	  调用方法时候使用的标识
//参数:	   由数据类型和变量名组成,多个参数之间用逗号隔开
//方法体:	  完成功能的代码块
//return:	如果方法操作完毕,有数据返回,用于把数据返回给调用者
5.方法的注意事项

注意事项:

​ 1.方法的返回值 必须 和返回值类型类型一致

​ 2.如果方法没有返回值,那么返回值类型必须是void

​ 3. 如果方法没有返回值,那么在方法内部一般不使用return,假如需要使用return,那么return的后面不能带回任意的结果==> return;

细节:

​ 1. 方法不能嵌套定义

​ 2. 方法的返回值类型void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写,如果要写

​ return,后面不能跟具体的数据

​ 3. return语句下面,不能编写代码,因为永远执行不到,属于无效的代码

​ 4.方法调用:
在这里插入图片描述
​ 5. return有两个作用:

​ 1.返回一个结果

​ 2.结束方法,也就是将方法从栈内存中弹出去,该过程称之为方法的弹栈

练习:

/**
 * @author 你的大龙猫啊
 */
/*
需求:设计一个方法可以获取两个数的较大值,数据来自于参数
        1. 定义一个方法,声明两个形参接收计算的数值,求出结果并返回
        2. 使用 if 语句 得出 a 和 b 之间的最大值,根据情况return具体结果
        3. 在main()方法中调用定义好的方法并使用 【 变量保存 】
     */
    public static void main(String[] args) {
        // 3. 在main()方法中调用定义好的方法并使用 【 变量保存 】
        System.out.println(getMax(10,20));  // 输出调用
        int result = getMax(10,20);
        System.out.println(result);         //赋值调用
    }
    //方法定义在类中方法外
    //定义方法两个明确 1.返回值类型 2.参数
    // 方法可以获取两个数的较大值
    public static int getMax(int a, int b){
        if(a > b){
            return a;
        }else{
            return b;
        }
    }
}

6.方法的重载:

​ 1.同一个类中

​ 2.方法名相同

​ 3.参数列表不同(个数不同、类型不同、顺序不同),和返回值类型无关

注意:

​ 识别方法之间是否是重载关系,只看在同一个类中的方法名和参数,与返回值无关。

方法参数的传递:

1.方法参数传递为基本数据类型时,形式参数的改变,不影响实际参数 —传入方法中的, 是具体的数值.
每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失

2.方法参数传递为引用数据类型时,形式参数的改变,影响实际参数的值 —传入方法中的,是内存地址.
引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈, 堆内存中的数据也已经是改变后的结果

练习:

/**
 * @author 你的大龙猫啊
 */
/*
需求:设计一个方法,该方法能够同时获取数组的最大值,和最小值
 */
public class Test3 {
    public static void main(String[] args) {
        int[] a = {11,33,55,22,44};
        int[] mAdnMin = getMaxAndMin(a);
        System.out.println("最大值为:"+mAdnMin[0]);
        System.out.println("最小值为:"+mAdnMin[1]);

    }
      /* 方法的两个明确:
                   1.返回值类型  int[]
                   2.参数 int[] arr  */
    public static int[] getMaxAndMin(int[] arr){   //方法名可以自己定义,一般见名知意
        int max=arr[0];
        for (int i = 0; i < arr.length; i++) {
            if(max<arr[i]){
                max = arr[i];
            }
        }
        int min=arr[0];
        for (int i = 0; i < arr.length; i++) {
            if(min>arr[i]){
                min = arr[i];
            }
        }
        //把获取到的最大值和最小值放入一个新的数组中
        int[] maxAndMin = {max,min};
        return maxAndMin;
    }
}

图解:在这里插入图片描述
下一篇:Java基础知识(JavaSE)总结06

上一篇:Java基础知识(JavaSE)总结04

提升拓展篇:Java基础总结05拓展

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值