什么是JAVA里面的方法体,方法头形参,实参方法调用和局部变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是JAVA里面的方法体,方法头形参,实参方法调用和局部变量?相关的知识,希望对你有一定的参考价值。

在Java中,方法是一段可重用的代码块,用于完成特定的任务。方法通常由方法头和方法体组成,其中方法头包括方法名、返回类型和参数列表,而方法体则包含实际的方法代码。
方法体是方法中的代码块,用于实现方法的功能。方法体中的语句可以包含控制流语句(例如if、for和while语句)、变量声明、方法调用和其他Java语言特性。
方法头中的形参是在方法定义中声明的变量,用于接收传递给方法的值。形参在方法调用时通过实参来传递值。例如,以下方法定义中的num1和num2就是形参:
public static int add(int num1, int num2)
int result = num1 + num2;
return result;

在这个例子中,add方法有两个参数num1和num2,它们的类型都是int,分别用于接收传递给方法的值。
实参是在方法调用时传递给方法的值,用于实际执行方法的计算。例如,以下方法调用中的3和5就是实参:
int sum = add(3, 5);
在这个例子中,调用add方法并将3和5作为实参传递给方法。方法执行后,返回计算结果并将其赋值给变量sum。
局部变量是在方法体内部声明的变量,它们只能在声明它们的方法中使用,并且不能被其他方法访问。在方法体中,局部变量的作用范围被限制在方法体内部,一旦方法执行完成,局部变量也将被销毁。例如,以下方法中的result就是一个局部变量:
public static int add(int num1, int num2)
int result = num1 + num2;
return result;

在这个例子中,result是在方法体内部声明的变量,并且只在该方法中使用。
参考技术A JAVA里面的方法体是指方法定义中的代码块,也就是用来实现方法功能的部分。

方法头形参是指在方法头中声明的参数,这些参数由其他类或者函数传递进来,以便在该函数内部使用。

实参是指被传递到函数中的变量或者表达式,一般情况下,它们与形参对应。

方法调用就是在程序执行到一个函数时,将该函数所需要的相关信息传递给该函数并执行该函数。

局部变量是指声明在一个特定作用域内有限期存在并且不能被其他作用域访问到的变量。

:Java中的方法和方法重载

文章目录

一:Java中的方法

(1)什么是方法

方法:Java中方法就是一个代码片段,它类似于 C 语言中的 “函数”。作用有:

  • 能够模块化的组织代码
  • 做到代码被重复使用 ,一份代码可以在多个位置使用
  • 让代码更好理解更简单
  • 直接调用现有方法开发,不必重复造轮子

(2)方法定义

在Java中,定义一个方法的基本格式如下,注意

  • 修饰符:现阶段直接使用public static固定搭配即可
  • 返回值类型:如果方法有返回值,则返回值类型必须要与返回的实体的类型一致;如果没有返回值,必须写成void
  • 方法名字:采用“小驼峰”方式命名
  • 参数列表:如果方法没有参数则什么都不写;如果有参数,则需要指明参数类型,多个参数之间使用逗号隔开
  • 方法体:就是方法内部需要执行的语句,实现方法功能
  • 在Java中:方法必须写在类中、方法不能嵌套定义、没有所谓的“声明方法”
修饰符 返回值类型 方法名称([参数类型 形参1,参数类型 形参2...])
	方法体代码;
	[return 返回值];


//例子:两个整数相加
public static int add(int x, int y)
	int ret = x + y;
	return ret;

(3)方法调用

使用方法时称之为方法调用。例如下面的例子:计算1!+2!+3!+4!+5!

public class TestDemo 
    public static void main(String[] args) 
        int sum = 0;
        for(int i = 1; i <= 5; i++)
            sum += fac(i);
        
        System.out.println("1!+2!+3!+4!+5!=" + sum);
    
    //计算的n!
    public static int fac(int n)
        System.out.print("计算" + n + "!=:");
        int ret = 1;
        for(int i = 1; i <= n ; i++)
            ret*=i;
        
        System.out.println(ret);
        return ret;
    

(4)实参和形参的关系

A:实参和形参是什么

  • 实际参数(实参):调用方法时传入的参数
  • 形式参数(形参):定义方法时的参数,形参名任意

B:传值和传引用

在Java中,实参和形参分别占据不同的内存空间,方法被调用后会自动为形参开辟空间,两片空间没有任何关系,方法调用完毕形参所在空间就会被销毁。在上面的例子,实参只是把形参的值复制了一份给了形参,形参不会影响到实参

例如下面的例子中,swap方法无法实现变量交换,它仅仅交换的是形参

public class TestDemo 
    public static void main(String[] args) 
        int a = 10;
        int b = 20;
        swap(a, b);
        System.out.println("a="+a+" b="+b);
    
    public static void swap(int x, int y)
        int temp = x;
        x = y;
        y = temp;
    


对于上面的基本类型,形参是实参的拷贝,所以传参时属于 传值调用;而对于引用类型,形参从某种方面来讲就是实参,所以传参时属于 传引用调用,此时对形参的修改则会直接反馈在实参上(后面再讲)

二:方法重载

(1)概念

方法重载:Java中允许多个同名方法同时存在。满足以下要求时构成方法重载

  • 方法名称相同
  • 形参列表不同(类型、个数、顺序满足其一即可)
  • 返回值不做要求(但两个或多个方法仅仅因为返回值类型不同是不能构成重载的)

如下有三个同名方法add()构成重载,编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法

public class TestDemo 
    public static void main(String[] args) 
        int a = add(1, 2);
        double b = add(3.14, 5.27);
        double c = add(1, 1.98, 2);
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    
    public static int add(int x, int y)
        return x + y;
    
    public static double add(double x, double y)
        return x + y;
    
    public static double add(int x, double y, int z)
        return x + y;
    


(2)实现原理

之所以可以实现这样的功能,是因为编译器在编译时会对原有方法名进行修饰,修饰规则为:方法全路径名+参数列表+返回值类型,以此构成方法完整的名字

这里,对上述字节码文件执行反汇编:javap -v TestDemo.class后可查看到如下信息

三:递归

以上是关于什么是JAVA里面的方法体,方法头形参,实参方法调用和局部变量?的主要内容,如果未能解决你的问题,请参考以下文章

带参数的方法

java的传参究竟是按值传递的还是按引用传递的

java14

java对形参操作能否改变实参

java:第十四章

调用函数时为啥形参的值不能传给实参