Java中的方法

什么是方法

方法:是一个代码片段,类似于C语言中的函数。

1.当代码规模比较复杂时,能够模块化地组织代码;

2.做到代码被重复使用,一份代码可以在多处位置使用;

3.让代码更好理解更简单;

4.直接调用现有方法开发;

方法的定义

语法结构:

修饰符  返回值类型 方法名称([参数类型 形参...]){

        方法体代码;

        [return 返回值];

}

例如:实现闰年的判断

//public:访问修饰限定符    static:静态关键字    int:返回值类型   q:方法名  括号中是形式参数列表
    //判断是否为闰年 判断是否需要使用Boolean
    public static boolean isLeapYears(int year){
        //方法体;
        //在if判断语句之前无需定义year     因为year已经在上述作为形参定义了
        if((year %4 == 0 && year %100 != 0)||year%400==0){
            System.out.println(year+"是闰年");
            //boolean类型必须要有返回类型(返回true、false)
            //不能先执行return语句,一旦执行return语句则表示方法执行结束,之后不能被执行
            return true;
        }else{
            System.out.println(year+"不是闰年");
            return false;
        }
    }

    public static void main(String[] args) {
        //使用方法需要先调用
        isLeapYears(2023);
        //若是上述语句进行调用,并非用到返回值
        boolean year =isLeapYears(2023);
        System.out.println(year);
        //此时便可返回false
    }

对于上述题目:主函数中调用isLeapYears进行传参(2023)使用year来接受返回值;

对于传参:1.确定方法类型、个数、顺序都要一一匹配;2.接受返回值也需要一一匹配;

改进:判断1000-2000年之间的闰年

    public static boolean isLeapYears(int year){
        if((year %4 == 0 && year %100 != 0)||year%400==0){
            return true;
        }else{
            return false;
        }
    }
    public static void main(String[] args) {
        for (int i = 1000; i < 2000; i++) {
            boolean year=isLeapYears(i);
            if (year==true){
                System.out.println(i+"是闰年");
            }
        }
    }
方法从编写到使用

1.定义方法(决定方法返回值是什么类型、方法名是什么、形参有几个什么类型什么顺序

2.使用方法,(调用方法。 方法名(),看有几个参数都是什么类型什么顺序

3.观察方法是否要有返回值,若有返回值要不要接收返回值,用什么类型接收,接收了返回值用返回值做什么。

例如:实现两个数相加

public static int add(int a,int b) {
        return a+b;
    }
    public static void main(String[] args) {
        //方法使用int类型调用方法时也应使用int类型
        int a=20;
        int b=30;
        int a1=add(2,3);//只需要输入(2,3) 编译器会自己完善
        System.out.println("a1"+"="+a1);//a1=5
        //可以接收返回值将返回值扩大5倍,并使用   若方法无返回值(void型)则不能接收!
        int t=a1*5;
        System.out.println(t);
        int a2=add(a,b);
        System.out.println("a2"+"="+a2);//a2=50
    }

注意:

1.初阶可以直接使用public static固定搭配;

2.返回值类型:若方法有返回值,返回值类型必与返回的实体类型一致;若无返回值,必写void;

3.方法名字:采用小驼峰命名;

4.参数列表:若方法无参数,括号中什么都不写,若有参数需指定参数类型,多个参数之间需用逗号隔开;

5.方法体:方法内部要执行的语句

6.在Java当中,方法必须写在类当中、方法不能嵌套定义、没有方法声明的概念;

方法调用执行过程

方法调用过程:调用方法-->传递参数-->找到方法地址-->执行被调方法的方法体-->被调方法结束返回-->回到主调方法继续向下执行

注意:定义方法的时候,不会执行方法的代码,只有调用的时候才会执行;一个方法可以被多次调用;方法的执行是在一块内存当中,这块内存叫做栈,当方法结束后方法所开辟的栈帧就被回收了(因此方法的调用是在栈上的、方法遇到return或者右花括号代表当前方法结束了,对应方法开辟的栈帧回收了、);

例如:计算1!+2!+3!+...

 public static int fucNum(int num){
        int sum=0;
        for (int i = 1; i <= num; i++) {
            int ret= fuc(i);
            sum += ret;
        }
        return sum;
    }
    public static int fuc(int n){
        int ret=1;
        for (int i = 1; i <= n; i++) {
            ret *=i;
        }
        return ret;
    }
    public static void main(String[] args) {
        System.out.println(fucNum(5));
    }

实参和形参的关系

方法的形参相当于数学函数中的自变量,用来接收函数在调用时传递的值,形参只是方法在定义时需要借助的一个变量,用来保存方法在调用时传递的值。

//例如
public static int facSum(int N){ //N是形参
    return (1+N)*N/2;
}
facSum(10);    //10是实参在方法调用时,形参N来保存10
facSum(20);    //20也是如此
//例如
public static int add(int x,int y){
    retuen x+y;
}
add(2,3);//此时2和3是实参在调用时传给形参x和y

Java中,实参的值永远都是拷贝到形参中,形参和实参本质是两个实体;

方法重载

1.方法名称必须相同;

2.方法的参数列表不同(类型、顺序、个数),和返回值无关;

3.编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法;

 public static double sum(double a,double b){
        return a+b;
    }
    public static double sum(int b,double a){
        return a+b;
    }
    public static double sum(double a,int b){
        return a+b;
    }
    public static int sum(int a,int b,int c){
        return a+b+c;
    }
    public static int sum(int a,int b){
        return a+b;
    }
    public static void main(String[] args) {
        int a=10;
        int b=20;
        int ret = sum(a,b);
        System.out.println(ret);
        double d1=12.4;
        double d2=17.8;
        double ret2 = sum(d1,d2);
        System.out.println(ret2);

    }

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半颗星辰、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值