Java自学随笔 - 关于方法(函数)的相关知识点泛记

概述:方法(函数)是一能够完成独立功能的代码块,我们只需要写一次方法就可以被多次使用,从而提高了代码的复用性。

1.方法如何被调用?

方法名(参数值1,参数值2);
例:
/*方法名写的意义明确,即可见名知意
如下面这个方法就能基本知道,这是一个
数字比较的方法,同时传入a,b两个参数
*/
NumCompare(a,b);

2.调用一个方法需要注意什么?

当调用某一个方法时,需要查看方法是否有void这样的关键字,如果含有
void,那么我们不需要添加return变量值;如果没有void关键字,在方法体的
的结尾处加上return变量值,防止报错。

//当方法是有返回值时

//当方法是有返回值时
class S1{
public static void main(String []args){
	int a = 10;
	int b = 19;
	int Result = NumCompare(a,b);
	System.out.println(Result + "大")
	}
public static NumCompare(int a , int b);
	int c = 0;
		if(a > b){
			c = a;
	}else{
		c = b;	
	}
	return c;
}

//当方法是没有返回值时

//当方法是没有返回值时
class S1{
public static void main(String []args){
	int a = 10;
	int b = 19;
	NumCompare(a,b);
	}
public static void NumCompare(int a , int b);
	int c = 0;
	if(a > b){
		System.out.println(a + "大")
	}else{
		System.out.println(b + "大")	
	}
}

PS:当方法没有返回值时,其实也可以使用return,但不是
使用return变量

class S1{
public static void main(String []args){
	int a = -1;
	int b = 19;
	NumCompare(a,b);
	}
public static void NumCompare(int a , int b);
	int c = 0;
	if(a < 0 || b < 0){
		System.out.println(a + "大")
		//通过条件比较,发现结果为false,运行到return时,程序停止执行
		return;
		//不在执行后续逻辑
	}else{
		System.out.println(b + "大")	
	}
}

3.方法中参数传递,形参,实参,有参,无参

有参:指的是参数不在被调用的方法内声明类型和赋值,而是在方法外部声明
赋值。在参数传递的过程中,被调用的方法的可支持的参数类型,需要在方法内
声明。例如:
int a = 10; int b =10; //定义两个参数
NumCompare(a , b); //调用NumCompare方法
public static void NumCompare(int a , int b){} //规定传来的参数的数据类型

无参:指的是参数在被条用的方法内声明并赋值,在方法被调用时不需要
写入参数,同时方法也不需要规定传来的参数的数据类型。
例如:
NumCompare(); //调用NumCompare方法

public static void NumCompare(){} //规定传来的参数的数据类型
int a = 10; int b =10; //定义两个参数

形参:指的是在方法之类的参数
public static void NumCompare(int a , int b){}

实参:指的是在调用端使用的参数
NumCompare(a , b);

参数传递过程:

当.class文件加载到数据共享区,解析到主方法和NumCompare方法。进栈开始执行程序主方法内开出两个int类型的内存空间a,b并赋值。由于在主方法内调用NumCompare,刚刚两个int类型变量置于栈底。随后将栈底的a,b两个变量传递到NumCompare(int a,int b)。

思考:如果在被调用的方法内重新定义a的值,会对结果有影响么?
不会。因为主方法中,ab两个变量所属的内存空间与NumCompare(int a , int b)中这两个形参所开辟的内存空间是有区分的。而且在被调方法中,重新定义a的值,改变的不是主方法内a的值,而是改变了被调方法中a的值,而在打印的也是主方法中a的值,所以值不变.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值