一、对象的行为
JVM在运行期间,划分为5个区域:栈,堆,元空间,PC寄存器,本地方法栈
1、栈 - 方法调用栈
栈是一种数据结构,它是一种FILO结构(先进后出)
栈中存在方法的调用关系,假如main()方法调用了turnOn()方法,然后turnOn()方法又调用了setVolume()方法,最后setVolume()方法又调用println()方法。
因为println()方法是在调用栈的顶部,那么控制流程现在就在println()方法中。setVolumn()方法等待println()完成,turnOn()方法等待setVolume()完成,沿着调用栈向下依此类推
过程:
1、压栈
2、出栈
当每个方法,执行完毕将从栈的最上方移除。正在执行的方法,永远在栈的最上方。
二、方法的调用
方法在执行时,可能有3种情况:
1、正常执行,并返回一个结果
/*** 有返回结果的方法* @param a* @param b* @return*/public int add(int a,int b) {return a + b;}
2、正常执行,不返回任何结果
/*** 无返回结果的方法* 打开收音机*/public void turnOn() {setVolume(50);}
三、方法的定义
Java 程序是以类为单位组织自己的代码,所以任何代码都需要写在类中,包括:方法
方法:对象的行为 或者 类的行为
格式:
方法:访问修饰符 可选修饰符 返回值类型 方法名(形式参数) 抛出的异常{}
访问修饰符:public protected 默认 private
可选修饰符:static final abstract native synchronized
返回值类型: void 代表没有返回 其他的,都代表有返回
方法名:自己定义
形参列表:方法中需要使用到的参数
四、按值传递
当实际参数传递给形式参数时,实际参数的数据被复制给形式参数。在编程中,在方法调用之间复制数据的过程称为按值调用。
注:Java中只有值传递
五、方法的重载
Java中允许方法被重载。当一个类有两到多个同名但是有不同参数列表的方法时,就是方法重载。
相同的行为,可能有不同的实现:
相同的方法,根据不同的参数(类型,个数,顺序)来进行区分
public class Person {public void goHome() {System.out.println("使用11路公交车回家!!!");}public void goHome(Bike bike) {System.out.println("骑车回家!!!");}public void goHome(Car car) {System.out.println("开车回家!!!");}public void goHome(Bike bike,Car car) {System.out.println("先骑车,再开车回家!!!");}public void goHome(Car car,Bike bike) {System.out.println("先开车 ,后骑车!!!");}public static void main(String[] args) {Person person = new Person();person.goHome();}}
