1.方法在栈内存
每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完毕之后,会从栈内存中弹栈消失。
2.方法的注意事项
2.1 方法不能嵌套定义
2.2 void表示无返回值
可以省略return;
也可以单独的书写return,后面不加数据
3.方法重载
定义:
多个方法在同一个类中
多个方法具有相同的方法名
多个方法的参数不相同,参数类型不同 或者 参数数量不同
相同的返回类型不是强制性的。
因此,如果方法的名称相同且返回类型不同,则参数列表必须不同,才可以重载。
在重载中,必须同时支持以下这两点:
- 两种方法都必须具有-一样的名字。(方法名相同)
- 并且具有不同的参数列表(不同的类型或不同的个数或两者兼有)。(参数列表不同)
4.方法重写
定义:
子类方法重写父类的方法,
方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,
这就称为重写(Overriding)。
5.重写与重载的区别
6.方法的参数传递
6.1方法参数传递基本类型
形参为基本数据类型,形参的值改变,实参的值不变
结论:
基本数据类型的参数,形式参数的改变,不影响实际参数
结论依据:
每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失
6.2方法参数传递引用类型
形参为引用数据类型,形参的值改变,实参的值也改变
结论:
对于引用类型的参数,形式参数的改变,影响实际参数的值
结论依据:
引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,
所以即使方法弹栈,堆内存中的数据也已经是改变后的结果