一、什么是方法?
1、封装性:方法将一组相关操作封装在一起,形成一个独立的功能模块。这使得代码更加清晰,易于理解和维护。
2、可重用性:通过定义方法,可以避免代码重复,同一段代码可以在程序的不同部分被多次调用,提高了代码的复用性。
3、模块化:方法允许将复杂的问题分解为更小,更易于管理的部分。每个方法负责解决一个特定的子问题,这有助于降低整体程序的复杂度。
4、接口与实现分离:方法提供一个接口,用户只需要知道如何调用方法和期望的结果,而不需要关心方法内部的具体实现细节。
5、参数传递:方法可以通过参数接受外部数据,并返回处理结果,这使得方法能够灵活地与其他部分交互,增强了程序的灵活性和通用性。
6、控制流程:方法可以包含条件语句,循环等控制结构,从而控制程序的执行流程。但是,这些控制结构通常是在方法内部使用的,方法本身仍然是一个独立的,可执行的单元。
二:方法的定义格式
1、最简单的方法定义与调用
格式:
public static void 方法名() {
方法体;
}
案例:public static void playGame(){
System.out.println("开始打游戏");
}
调用案例:
public static void main(String[] args) {
playGame1();
playGame2("疯狂敲代码");
playGame3("疯狂学习");
}
/**
* 没有入参,没有返回值的方法。
*/
public static void playGame1(){
System.out.println("开始打游戏咯");
}
/**
* 有入参,没有返回值的方法。
* @param string 入参
*/
public static void playGame2(String string){
System.out.println(string);
}
/**
* 有入参,有返回值的方法
* @param string 入参
* @return 响应
*/
public static String playGame3(String string){
System.out.println(string);
return string;
}
三、方法的注意事项
1、方法不调用就不会执行。
2、方法与方法之间是平级关系,不能互相嵌套定义。例如:
public static void main(String[] args) {
/**
* 没有入参,没有返回值的方法。
*/
public static void playGame1(){
playGame2("哈哈哈");
}
}
这样写的话那就会在编译时报错啦,原则是方法是平级关系,注意这个平级关系。所以不能将一个方法的定义写在另一个方法里面。
3、方法的编写顺序与执行顺序无关,与调用顺序有关。例如:
public static void main(String[] args) {
playGame2("疯狂敲代码");
playGame3("疯狂学习");
playGame1();
}
/**
* 没有入参,没有返回值的方法。
*/
public static void playGame1(){
playGame2("哈哈哈");
}
/**
* 有入参,没有返回值的方法。
* @param string 入参
*/
public static void playGame2(String string){
System.out.println(string);
}
/**
* 有入参,有返回值的方法
* @param string 入参
* @return 响应
*/
public static String playGame3(String string){
System.out.println(string);
return string;
}
上述代码执行顺序是 playGame2,playGame1,playGame3 ,
而不是playGame1 ,playGame2,playGame3
4、return语句下面,不能编写代码,因为永远执行不到,属于无效代码,会在代码编译期间就报错。例如:

可以看见,return下面的输出语句就在编译期间报错了。
5、两个方法之间,不能来回调用。

当main方法启动时,会先调用playGame1方法,playGame1方法会调用playGame2方法,然后playGame2又会调用playGame1方法,然后无限循环。这就会导致栈空间被耗尽。
因为我们知道,当一个方法被调用时,就会新建一个新的栈帧,那么这里就会无限的新增栈帧,从而导致 java.lang.StackOverflowError 报错,这就是JVM的栈空间被耗尽的报错。
四:方法的重载
在咱们Java中,方法的重载是一种允许在同一个类中定义多个同名方法的机制,这些方法的名称虽然相同,但它们的参数列表不同。方法重载是实现多态性的一种形式,它使得程序员可以使用相同的名称来执行相似但不完全相同的操作,从而提高了代码的可读性和易用性。
重载的核心:
1、同一个类中,定义多个同名方法。
2、方法名相同,但参数列表【入参列表】一定不同。
注意事项:
1、不同的类,同名的方法叫不叫重载呢?回答:不叫!它们就是两个完全不同的同名方法而已,并且它们归属的类也不同,相互无任何影响。
2、定义两个相同的方法名,与参数列表的方法,会在编译时报错。
3、相同方法名,但返回值类型不同,这不叫重载哟!
4、访问修饰符和异常声明也不是重载
5、静态与非静态方法
更便于理解的解释:1、同一个类中,方法名相同,参数不同的方法就是重载。
2、参数不同的规则有:
a、个数不同。b、类型不同。
c、顺序不同。
下面是代码案例:

重载的好处是什么?
1、增强代码可读性:使用描述性的方法名称,避免了因参数不同而需要创建多个不同名称的方法。
2、减少程序员的记忆成本:开发人员只需要记住一个方法名即可,根据实际使用到的参数来选择不同作用的方法。
3、提升代码的灵活性和扩展性:当需要添加新的功能或处理不同类型的参数时,可以直接添加新版本的重载方法。

被折叠的 条评论
为什么被折叠?



