目录
注意:形参的改变是不能改变实参的值,所以number=10编辑
注意:main方法就是主程序的入口
注意:1.方法不能定义在main中,否则无法调用
2.调用的方法名称不能写错,否则也无法调用你先调用的方法
3.没有定义方法,自然也无法调用
定义main方法时,main方法如图所示会压栈到最下面,这样一来,你的方法定义在main方法的下面,也是可以被调用的,则不会出现代码从上往下执行而无法调用方法的问题
注意:栈的原则(压栈)就是先进后出,后进先出,所以main最后出运行,getMax后进栈,所以先被执行了,每当getMax方法执行完sout打印之后就会出栈
出栈前:
出栈后:
使用debug调试工具也可以看出,压栈和出栈,如图所示:
如图所示:如果a,b两变量的值不一样,那么就需要在重新定义一个getMax2
如果我将a,b两个变量作为参数给方法,那就会一个代码多次利用,可以提高代码的复用性:
注意:报错原因很简单,就是因为getMax中两个参数都是int,但是在main中调用方法时的参数重新定义为long,所以不能自动转换才报错的
如图所示:
注意:void的方法时不返回,其他的都是有返回值(int,string。。。)
传了一个int a = 10,那么这个10就被返回了,所以打印的也是10
例子二:
运行结果:
如图所示:
注意:除了void方法需要些返回值,其他的可以不写,只写一个retrurn不带值,也可以
注意:方法名相同,重载是与返回值类型无关
运行结果:
因为也是后进先出的规则,先将change(number)定义为20,然后此方法就出栈了,接着再次调用main方法是就一次main方法的进栈,然后赋值number=10,所以就输出10,也就是输出实参(形参已经出栈了)
运行结果:
注意:引用类型传递形参是内存地址
在change方法运行完了之后就会出栈,然后将下标为0的30重新赋值为100,于是输出的值其实是100,由此可知,与基本类型的参数传递恰恰相反
运行结果: