方法
一.方法简单介绍:
方法概念: 方法是一种语法结构,它可以把一段代码封装成一个功能,以方便重复调用。
使用方法的好处: 提高了代码的复用性,让程序的逻辑更加清晰。
二.方法的定义与调用:
方法的定义格式:
修饰符 返回值类型 方法名( 形参列表 ){
方法体代码(需要执行的功能代码)
return 返回值;
}
方法名:自己取名,有意义,英文小写,第一个单词的首字母小写,以后每个单词的首字母大写,驼峰模式。(有意义的名字即可)
注:
真正需要关注的就两点:
- 分析方法是否需要声明返回值类型;
- 分析方法是否需要接收参数。
方法的调用格式: 方法名(…);
sum(10,20);
二.使用方法的注意事项:
- 方法的修饰符:暂时都使用public static 修饰。
- 方法声明了具体的返回值类型,内部必须使用return返回对应类型的数据。
- 形参列表可以有多个,甚至可以没有; 如果有多个形参,多个形参必须用“,”隔开,且不能给初始化值。
- 如果方法不需要返回结果,返回值类型必须声明成void(无返回值), 此时方法内部不可以使用return返回数据或者方法没有申明返回值类型,内部也不能使用return返回数据。如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据。
- 方法不需要参数,则形参列表可以不写。
- 方法的编写顺序无所谓。
- 方法与方法之间是平级关系,不能嵌套定义。(如不能在main方法中嵌套定义方法)
- return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。
- 方法不调用就不执行, 调用时必须严格匹配方法的参数情况。
- 有返回值的方法调用时可以选择定义变量接收结果,或者直接输出调用,甚至直接调用(即只是让函数运行一遍,放弃返回值);无返回值方法的调用只能直接调用。
三.方法调用的内存图:
方法没有被调用的时候,在方法区中的字节码文件中存放,方法被调用的时候,需要进入到栈内存中运行。
首先在方法区中执行到main函数,main函数进入栈内存,在栈内存中进入main函数,执行到add函数时,add函数进入栈内存,然后在栈内存中进入add函数,add函数执行完毕后出栈,回到main函数,继续执行后面的语句,main函数执行完毕后,main函数出栈。
首先在方法区中执行到main函数,main函数进入栈内存,在栈内存中进入main函数执行到study函数时,study函数进栈,在栈内存中执行study函数,然后eat函数进栈,执行eat函数,执行完毕后执行下面语句,最后sleep函数进栈,在栈内存中执行sleep函数,sleep函数执行完毕后出栈,然后study函数执行完毕出栈,最后main函数执行完毕出栈。
四.Java的参数传递机制:
值传递:
在传输实参给方法的形参的时候,并不是传输实参变量本身, 而是传输实参变量中存储的值,这就是值传递。
实参: 如在方法内部定义的变量。
形参: 如在定义方法时,“()”中所声明的参数。
2.基本类型的参数传递:
引用类型的参数传递:
基本类型和引用类型的参数在传递的时候有什么不同:
都是值传递。基本类型的参数传输存储的数据值。引用类型的参数传输存储的地址值。
五.方法重载
什么是重载:
同一个类中,多个方法的名称相同,形参列表不同,那么它们就是重载的方法,其它的不管(如修饰符,返回值类型都无所谓)
形参列表不同指的是形参的个数,顺序,类型不同,与形参的名称无关。调用方法的时候会通过参数的不同来区分调用的是哪个方法
方法重载的作用:
可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,这是一种专业的代码设计。
六.return关键字:
return:跳出并结束当前方法的执行。
break: 跳出并结束当前所在循环的执行。
continue: 结束当前所在循环的当次继续,进入下一次执行。