Skip to content

七、方法

一、方法定义与使用

定义一个方法的格式

java
[修饰符] [返回类型] 方法名([参数类型] 参数名 ...){
	//方法体执行语句
}
  • 修饰符为可选项,定义了该方法被访问的权限
  • 方法名为必填项,命名规则和Java中的其他标识符相同
  • 方法参数,也称为入参,为可选项
  • 方法体执行语句,是指任何可以出现在方法内部的有效代码
  • 返回类型,是指声明定义的方法执行完成后返回值的类型

1、方法参数

Java遍历分为基本类型和引用类型

  1. 基本类型在定义变量时就分配了空间
  2. 引用类型在定义时,只给变量定义了引用空间,而不分配数据空间

(1)按值传递

按值传递会将实参的值赋值给对应的形参,在函数内部的操作针对形参进行,

因为方法接收到的是原始值的副本,此时内存中存在两个相等的基本类型

(2)按引用传递

按引用传递就是将实参的内存地址传递给形参,方法中实参和形参都指向同一个内存地址,

2、方法返回值

  • 方法返回值使用return关键字
  • 方法返回值通过使用可选的返回语句返回,可以返回包括数组和对象的任意类型
  • 返回语句会立即中止函数的运行,并且将控制权交回调用该方法的代码行

3、方法类型声明

  • Java是一门强语言,对于变量类型不支持自动转换
  • Java中明确了对方法参数类型和返回类型的定义
  • 参数类型声明指定了方法参数值的类型,返回类型声明指定了将从方法返回的值的类型
  • 类型声明强调方法在调用时要求参数为特定类型,如果给出的值类型不对,那么将会产生编译错误

二、可变参数方法

Java支持在一个方法中传递数量不定的同类型参数,即可变参数传递。在方法声明时,

可变参数方法定义格式

java
[修饰符] [返回类型] 方法名([参数类型]...参数名){
	//方法体执行语句
}
  • 一个方法中可以定义多个参数,但是可变参数只能定义一个,并且位置必须为方法入参中的最后一个参数
  • 任何其他普通的参数定义必须在可变人参之前
  • 可变参数在Java编译时会被处理为一个相应类型的数组

示例

java
public class VariableMethod {
	public static void test(String... args) {
		System.out.println("这是可变人参方法")
		for (String arg : args) {
			System.out.println("人参为:" + arg);
		}
	}
	
	public static void main(String] args){
		test();
		test("A");
		test("A", "B", "C");
	}
}

三、方法的重载

  • 在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能
  • 每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系
  • 同一个类中,方法名相同,参数不同的方法
  • 与返回值无关
  • 参数不同:个数不同、类型不同、顺序不同