方法是什么

方法是java用来实现功能的代码段,类似于C语言中的函数

举个栗子:我们想榨一杯果汁,就需要准备水果,榨汁机,将水果放入榨汁机,加水等步骤,最终得到一杯果汁。而我们每次榨果汁都需要通过这个固定流程,这个流程即可类比成方法---在程序中我们也可以通过写一个方法来实现求和,求阶乘等功能。

方法的特点:

  • 实现代码模块化
  • 使一处代码可以在多处使用,不用重复写
  • 提高程序可读性

方法的定义

格式

修饰限定符  方法返回值类型  方法名 (参数类型 形参变量){

方法体代码;

返回值;

}

其中,形参返回值可以根据方法功能选择写或不写。当方法无参时,即为无参方法;当无返回值时,方法类型为空 void

定义位置

方法应在main方法外定义,在main方法内调用

eg:main方法

public 【修饰限定符】static【修饰限定符】 void【返回值类型】main【方法名】(String []【参数类型这里为数组】args【形参变量】){


}

方法的调用

在java中无声明一说,在调用方法时无需提前声明

只需在main方法中直接写方法名加小括号即可调用,需匹配:

  • 方法名
  • 实参需与形参匹配(个数,类型,传参顺序)
  • 返回值

局部变量的作用域

在方法中定义的变量为局部变量,局部变量在方法被调用时在栈上开辟一块内存,遇到后花括号认为方法执行完毕,局部变量被释放

花括号:程序会识别花括号为方法\代码块开始或者结束,即一个方法内,当方法被调用时,花括号开始,局部变量生命周期开始,会在栈上开辟一个栈帧,花括号结束局部变量所的内存会被释放

注意:方法在未被调用时只会在方法区占一小块空间,方法不会运行,只有方法在main方法中被调用运行时才会在栈上开辟内存

经典交换问题

看一段代码,那么,这段代码能否实现交换问题呢

public class OldWap {
    public static void wap(int a,int b){
        int temp=a;
        a=b;
        b=temp;
    }
    public static void main(String[] args) {
        int a=10;
        int b=20;
        System.out.println("交换前a="+a+" b="+b);
        wap(a,b);
        System.out.println("交换后a="+a+" b="+b);
    }
}

运行结果如下:

注意:

  • 在java中,实参和形参之间都是值传递。上述代码中,实参a,b将10和20传给形参a,b,在方法内形参的值进行交换,方法运行结束后,形参被释放。故整个过程中,实参没有发生交换。
  • 我们无法像C语言一样拿到实参在栈上的地址,现阶段也无法通过写方法实现交换,这里即是想提醒大家用上述方法无法在值传递情况下实现交换。

返回值

java中返回值支持链式表达式,可以有如下写法:

1.方法内部返回值

return (1+N)*N/2;

2. 调用方法是用来接受的返回值

int ret=add(1,2)+3;

int =add(add(1,2),3);

方法重载

定义:在java中,若多个方法名字相同,参数列表不同,则称该几种方法重载了,在调用时,支持其中一种方法调用

重载需要满足以下要求:

  • 方法名必须相同
  • 参数列表必须不同(形参类型,顺序,个数等不同)
  • 方法返回值不参与
public class ChongZaiMax {
    public static void max(int a,int b) {
        System.out.println(a>b?a:b);
    }

    public static void max(double a,double b,double c) {
        double w=Math.max(a,b);
        System.out.println(w>c?w:c);
    }
    public static void main(String[] args) {
        max(10,22);
        max(7.6,2.4,4.8);
}
}

运行结果如下:

该程序max方法就构成重载了,我们只要在调用max方法时传对应参数即可调用对应方法

当我传两个整数,就调用了两个整形形参的方法;当我传了三个小数,就调用了有三个双精度浮点

型形参的方法。

好啦,以上就是今天的全部内容,希望对你有所帮助,感谢你的阅读~

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐