Java《方法》讲解

一、什么是方法?

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、提升代码的灵活性和扩展性:当需要添加新的功能或处理不同类型的参数时,可以直接添加新版本的重载方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值