目录
方法是一种语法结构,它可以把一段代码封装成一个功能,以便重复调用。
格式
eg.
(执行)方法必须调用才可以跑起来,调用格式:方法名(…);
方法定义时几个注意点:
方法修饰符:暂时都是用public static修饰
方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据。
形参列表可以有多个,甚至可以没有;如果有多个形参,多个形参必须用“,”隔开,且不能给初始化值
使用方法可以提前代码的复用性,提高开发效率,使程序逻辑更加清晰
方法的其他形式
方法定义是需要按照方法解决的实际业务需求,来设计合理的方法形式解决问题
- 1.方法是否需要接受数据处理?
需要:需要形参列表接受数据
不需要:不应该设计形参列表
- 2.方法是否需要返回数据
返回数据:返回值类型必须是返回
值数据的类型
不返回数据:返回值类型不应该填具体的数据类型,方法内部不能够return数据回来
注意事项
- 如果方法不需要返回数据,返回值类型必须申明成void(无返回值类型),此时方法内部不可以使用return返回数据
- 方法如果不需要接收数据,则不需要定义形参,且调用方法是也不可以传数据给方法了
- 没有参数,且没有返回值类型(void)申明的方法称为无参数无返回值的方法
方法使用时的常见问题
- 方法在类中的位置放前放后无所谓,但一个方法不可以定义在另一个方法里面。
- 方法的返回值类型写void(无返回申明)时,方法内不能使用return返回数据,如果方法的返回值类型写了具体的类型,方法内部则必须使用return返回对应类型的数据。
- return语句的下面,不能编写代码,属于无效代码,执行不到这儿。
- 方法不调用就不会执行,调用方法时,传给方法的数据必须严格匹配方法的参数情况。
- 调用有返回值的方法有三种方式:1、赋值调用:定义变量接收结果2、输出调用:放在输出语句中调用3、直接调用:方法还是会执行,只是返回的结果不要了
- 调用无返回值的方法只有一种方式:直接调用。
方法的案例
设计方法的技巧
- 方法是否需要接收数据进行处理(是否需要定义形参列表)
- 方法是否需要返回数据(是否需要声明具体的返回值类型)
- 方法要处理的业务
案例:
- 计算1-n的和
- 判断一个整数是奇数还是偶数
方法在计算机中的执行原理
方法被调用的时候是进入到栈内存中被运行(方法的运行区域是栈内存)
栈的特点是先进后出
方法在栈中运行是为了保证一个方法调用完另一个方法后,可以回来
流程
先在栈内存中执行main方法,调study方法,所以把study方法放在上面,执行study方法,调eat方法,所以把eat方法放在上面,执行eat方法,输出吃饭,eat方法就执行完了,从栈里清理掉,回到study方法,继续执行下一行代码输出学习,继续往下走,调sleep方法,所以把sleep方法提到栈里运行,放在上面,输出睡觉,sleep方法执行完从栈里清理掉,study方法也执行完了所以清理掉,回到了main方法,main方法也执行完清理掉了,整个程序就执行完了
java 的参数传递机制
- 基础类型的参数传递:传输存储的数据值
- 引用类型的参数传递:传输存储的地址值
java的参数传递机制都是值传递
- 值传递:指的是在方法重载传输实参给方法的形参的时候,传输的是实参变量中存储的值的副本
- 实参:在方法内部定义的变量
- 形参:定义方法时“(…)”中所声明的参数
案例
方法重载
一个类中,只要一些方法的名称相同,形参列表不同,那么它们就是方法重载了,其他的都不管(如,修饰符,返回值类型是否一样都无所谓)
形参列表不同指的是形参的类型、个数、顺序不同,不关心形参的名称
方法重载应用场景:
开发中需要为处理一类业务,提供多种解决方案,此时用方法重载
跳转关键字
- return关键字在方法中要单独使用;可以用在无返回值的方法中,作用是立即跳出并结束当前方法的执行
- break关键字:跳出并结束当前所在循环的执行
- contine关键字:结束当前所在循环的当次继续,进入下一次执行