java 实参 形参讲解

1,004 阅读3分钟

参数

形参实参

形参:

  • 形式参数,用于定义方法的时候使用的参数,只能是变量
  • 形参只有在方法被调用的时候,虚拟机才分配内存单元,方法调用结束之后便会释放所分配的内存单元

实参:调用方法时传递的数据可以是常量,也可以是变量

可变参数

可变参数用在形参中可以接收多个数据,在方法内部本质上就是一个数组

格式:数据类型... 参数名称

作用:传输参数非常灵活,可以不传输参数、传输一个参数、或者传输一个数组

可变参数的注意事项:

  • 一个形参列表中可变参数只能有一个
  • 可变参数必须放在形参列表的最后面
public static void main(String[] args) {
	sum(); // 可以不传输参数。
	sum(10); // 可以传输一个参数。
	sum(10,20,30); // 可以传输多个参数。
	sum(new int[]{10,30,50,70,90}); // 可以传输一个数组。
}

public static void sum(int... nums){
	int sum = 0;
	for(int i : a) {
		sum += i;
	}
	return sum;
}

方法

方法概述

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

注意:方法必须先创建才可以使用,该过程成为方法定义,方法创建后并不是直接可以运行的,需要手动使用后才执行,该过程成为方法调用

在方法内部定义的叫局部变量,局部变量不能加 static,包括 protected、private、public 这些也不能加

原因:局部变量是保存在栈中的,而静态变量保存于方法区(JDK8 在堆中),局部变量出了方法就被栈回收了,而静态变量不会,所以在局部变量前不能加 static 关键字,静态变量是定义在类中,又叫类变量


定义调用

定义格式:

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

调用格式:

数据类型 变量名 = 方法名 (参数) ;
  • 方法名:调用方法时候使用的标识
  • 参数:由数据类型和变量名组成,多个参数之间用逗号隔开
  • 方法体:完成功能的代码块
  • return:如果方法操作完毕,有数据返回,用于把数据返回给调用者

如果方法操作完毕

  • void 类型的方法,直接调用即可,而且方法体中一般不写 return
  • 非 void 类型的方法,推荐用变量接收调用

原理:每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完毕之后,会从栈内存中弹栈消失


注意事项

  • 方法不能嵌套定义

    public class MethodDemo {
    	public static void main(String[] args) {
    	}
    	public static void methodOne() {
    		public static void methodTwo() {
    			// 这里会引发编译错误!!!
    		}
    	}
    }
    
  • void 表示无返回值,可以省略 return,也可以单独的书写 return,后面不加数据

    public static void methodTwo() {
    	//return 100; 编译错误,因为没有具体返回值类型
    	return;
    	//System.out.println(100); return语句后面不能跟数据或代码
    }
    

    本文正在参加「金石计划 . 瓜分6万现金大奖」