Java——方法详细介绍

一、方法调用机制

1、方法调用机制详细介绍

下面对方法调用在内存中的情况进行分析,以下面的代码为例:

public class Test {
	public static void main(String[] args) {
		Person person = new Person();
        person.name = "张三";
        person.age = 18;
		int res = person.calcSum(1,2);
	}
}

class Person {
	String name;
	int age;

	//求两个数字的和的方法
	public int calcSum(int num1,int num2) {
		return (num1 + num2);
	}
}

在执行语句

Person person = new Person();

时,会在堆区创建一个对象,然后在 main 函数的栈帧中会创建一个对象引用变量,这个引用变量中存储的引用就是刚才创建的对象的引用。

然后执行下面这两句代码,

person.name = "张三";
person.age = 18;

对对象的属性初始化。

然后执行下面的代码,

int res = person.calcSum(1,2);

这里在调用对象 person 的方法时,会再开辟一个栈帧,就是 calSum 的栈帧,

方法内的局部变量和方法的参数在被调用时存储在方法的栈帧中。

这里的参数是基本数据类型,所以传参进行的是值拷贝,将实际参数的值直接拷贝给在 calSum 栈帧中的形式参数变量,然后进行计算,最后返回值,在方法返回后,它的栈帧就会被销毁,将返回值赋给变量 res。

这里我们发现在调用一个方法时会开辟方法对应的栈帧,再这个方法返回时,它的栈帧就会被销毁。

最后当程序退出时,main 函数栈帧也会被销毁。

二、方法调用细节

方法内部不能再定义方法。

1、访问修饰符

类的属性有访问修饰符,类的成员方法也有访问修饰符,与类的属性一致。

访问修饰符:

在Java中,访问修饰符(Access Modifiers)用于控制类、方法和属性(字段)的可见性。它们决定了其他类是否能够访问特定的类成员(属性或方法)。Java中有四种主要的访问修饰符:

  1. public
  2. protected
  3. (什么都不写时的访问级别为默认)
  4. private
<
修饰符 当前类 同一个包 子类(不同包) 其他包
public
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值