Java中的方法

方法概述

为什么要使用方法?

  • 使程序结构更清晰

  • 提高程序的开发效率

  • 提高代码的复用性

  • 有利于程序的维护

方法的概念

方法(method):用来解决某件事情或实现某个功能的办法。方法就是可以完成某个功能的代码块

  • 注意:

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

    • 方法定义后并不是直接可以运行的,需要手动调用才会执行

    • 可以在方法中调用其他的方法

方法在内存结构中的调用过程

  • 栈内存用的是栈这种数据结构

  • 总结:每个方法在被调用时,都会进入到栈内存中,并且拥有自己独立的内存空间;方法执行完后,就会从栈内存中弹出。

如何定义方法

定义方法的通用格式

  • 格式:

    修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,...) {
       方法体; 
        ...
       return 返回值;
    }
  • 具体说明:

    • 修饰符:权限访问控制修饰符、static修饰符、final修饰符等

    • 返回值类型:定义方法返回值的数据类型

    • 方法名:用户自定义的标识符

    • 参数类型:就是数据类型,用于限定 调用方法时 传入参数的数据类型(形参和实参的数据类型要一致)

    • 参数名:是一个变量,用于接收调用方法时传入的数据

    • 方法体:完成功能的代码块

    • return关键字:用于将返回值给调用方并结束方法(返回的值的类型必须和定义方法时的返回值类型相同)

    • 返回值:return语句返回的值,会返回给调用者

  • 注意事项:

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

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

    • 如果方法没有返回值,则声明为void类型,此时可以省略return语句;也可以单独的书写return,但后面不加数据。

方法的注意事项

方法不能嵌套定义

方法的重载

方法重载

  • 方法的重载:

    • 在同一作用域中(在同一个类中),方法名相同,但是参数的类型或参数个数不同的多个方法相互构成重载。方法的重载和返回值类型无关,只与参数有关

    • 在调用重载的方法时,会根据参数确定调用的是哪个方法

正确示例:

public class MethodDemo {
	public static void fn(int a) {
    	//方法体
    }
    public static int fn(double a) {
    	//方法体
    }
}

public class MethodDemo {
	public static float fn(int a) {
    	//方法体
    }
    public static int fn(int a , int b) {
    	//方法体
    }
}

错误范例:

public class MethodDemo {
	public static void fn(int a) {
    	//方法体
    }
    public static int fn(int a) { 	/*错误原因:重载与返回值无关*/
    	//方法体
    }
}

public class MethodDemo01 {
    public static void fn(int a) {
        //方法体
    }
} 
public class MethodDemo02 {
    public static int fn(double a) { /*错误原因:这是两个类的两个fn方法*/
        //方法体
    }
}

调用方法时的参数传递

传递基本类型(传值调用)

  • 结论:

    • 传入方法中的是具体的值

    • 传递基本数据类型的参数,形参的改变,不影响实参的值,因为在方法中定义的变量是局部变量

  • 结论依据:

    • 每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失,里面的东西也会跟着消失

传递引用数据类型(传址调用)

  • 结论:

    • 传递引用数据类型的参数:传递的是地址值,形参的改变,会影响实参的值 。

  • 结论依据:

    • 引用数据类型的传参,因为传入的是地址值,形参和实参两个引用就会指向同一个内存空间,所以即使方法弹栈了,堆内存中的数据也已经改变了

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值