day05_方法

方法

一、方法概述

方法:一段具有独立功能的代码块,不调用就不执行

方法的好处:可以提高代码的复用性

方法使用须知:

  • 方法必须先创建才可以使用(方法定义)
  • 方法创建后并不是直接运行的,需要手动调用(方法调用)

二、方法的定义和调用

格式:

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

如果调用了一个没有定义的方法,程序会报错

方法的调用过程:

  • 方法没有被调用存在于方法区
  • 方法被调用时加载到栈内存(栈内存:栈内存特点是先进后出,后进先出(子弹匣子))
public static void main(String[] args){
	//方法调用
	method();
}
//方法定义
public static void method(){
	System.out.println("方法");
}

三、带参数方法的定义和调用

public static void 方法名(数据类型 变量名){
	方法体;
}

注意事项:

  • 参数中的数据类型与变量名都不能缺少,否则程序报错
  • 多个参数之间使用逗号分隔
  • 调用带参数的方法时,参数的数量、类型必须与方法定义中设置的匹配,否则程序报错

形参和实参:

  • 形参:形式参数,是指方法定义时的参数;作用是接收实参
  • 实参:实际参数,是指方法调用时的参数;也就是实际参与运算的数据,由调用者指定

四、带返回值方法的定义和调用

格式:

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

为什么要有带返回值的方法?
我们经常会根据一个方法产出的结果,去组织另一段代码逻辑,为了拿到这个方法产生的结果,就需要定义带返回值的方法

return关键字的作用:返回返回值(并且停止方法)

注意事项:

  • return后面的返回值,与方法定义上的数据类型要匹配,否则报错
  • 方法的返回值通常会使用变量接收,否则该返回值将无意义

方法的通用定义格式:

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

方法定义时的两个明确:

  • 返回值类型:该方法需不需要返回一个结果? 它是什么类型的? 如果不需要返回一个结果,在返回值类型处写void
  • 参数列表:该方法执行过程中,需不需要原材料(实际参与运算的数据),如果需要,写在参数列表中,由数据和变量名组成;有多个参数,使用逗号分隔;如果不需要则不写

方法调用的三种方式:

  • 直接调用:用于调用没有返回值的方法(如果调用有返回值的方法,那么将无意义)
  • 赋值调用:必须调用有返回值的方法(将返回值使用相同类型变量接收,用于后续操作)
  • 打印调用:必须调用有返回值的方法(在输出语句中调用方法,相当于直接打印了返回值)
public static void main(String[] args){
	//直接调用
	method1();
	//赋值调用
	int c = method2(1,2);
	//打印调用
	System.out.println(method2());
}
public static void method1(){
	System.out.println("学习");
}
public static int method2(int a,int b){
	return a + b;
}

五、方法的注意事项

方法定义时:

  • 参数中的数据类型与变量名都不能缺少,否则程序报错
  • 多个参数之间使用逗号分隔
  • 方法不能嵌套定义
  • return后面的返回值与方法定义上的数据类型要匹配,否则报错
  • 方法的返回值为void,表示该方法没有返回值,可以省略return不写
  • return的作用是返回返回值,并且停止方法;所以return语句下面不能编写代码,属于无效语句会报错

方法调用时:

  • 调用带参数的方法时,参数的数量、类型必须与方法定义中设置的匹配,否则程序报错
  • 如果调用了一个有返回值的方法,需要用相同类型变量接收,否则返回值将无意义

六、方法的重载

在同一个类中,出现了方名相同,参数列表不同(数量、类型、顺序)的方法,我们称这些方法构成了重载;方法的重载与返回值无关

方法重载的好处:不用记忆过多繁琐的方法名

//两个add方法构成方法的重载
public class Demo{
	public static int add(int a,int b){
		return a + b;
	}
	public static int add(int a,int b,int c){
		return a + b + c;
	}
}

七、方法的参数传递

方法的参数传递 基本数据类型:

传递基本类型:传递的是“记录的具体数值”,形参的改变,不会影响实参

方法的参数传递 引用数据类型:

传递引用类型:传递的是“地址值”,形参的改变,会影响实参

public class Demo{
	public static void main(String[] args){
		int num = 10;
		System.out.println(num);//10
		method(num);
		System.out.println(num);//10

		int[] arr = {10,20};
		System.out.println(arr[1]);//20
		method1(arr);
		System.out.println(arr[1]);//200
	}
	
	public static void method(int num){
		num = 20;
	}

	public static void method1(int[] arr){
		arr[1] = 200;	
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掉发阿龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值