Java中的方法

前言

Java中的方法属于一种特殊的语法,在我们编码中是必不可少的一部分,它分为四种不同的形式,每一种形式都是重点,而且Java语言为了减轻开发人员对起名字的操作,设计了一种特殊的语法:方法的重构,减轻了开发人员负担,提高了开发效率

一、Java的方法结构

概述:Java里的方法是一种结构,里面存储着多次复用的代码,封装成一个功能,能多次调用

作用:提高了代码的复用性,使编码更加的灵活

1.1 无参无返回值

格式: 修饰符 void 方法名(){ 方法体 }
调用方式:直接调用 方法名();

public class Demo {
    public static void main(String[] args) {
        printInfo();
    }
    public static void printInfo(){
        System.out.println("我是无参无返回值的方法");
    }
}

1.2 无参有返回值

格式: 修饰符 返回值类型 方法名(){ 方法体 return 返回值类型数据 }
调用方式:返回值数据类型 变量 = 方法名();
注意:直接调用却不用变量接收没有意义,但是合法

public class Demo {
    public static void main(String[] args) {
        int number = printInfo();
    }
    public static int  printInfo(){
        System.out.println("我是无参有返回值的方法");
        return 10;
    }
}

1.3 有参无返回值

格式: 修饰符 void 方法名(参数列表){ 方法体 }
调用方式:传递参数直接调用 方法名(参数);

public class Demo {
    public static void main(String[] args) {
        String name = "小明";
        printInfo(name);
    }
    public static void  printInfo(String name){
        System.out.println("我是有参无返回值的方法");
        System.out.println(name+"今晚要上课");
    }
}

1.4 有参有返回值

格式: 修饰符 返回值类型 方法名(参数列表){ 方法体 return 返回类型的数据 }
调用方式:返回值数据类型 变量 = 方法名(参数);
注意:直接调用却不用变量接收没有意义,但是合法

public class Demo {
    public static void main(String[] args) {
        //传入一个整数n,求1-n之间的和并返回输出
        int sum = getSum(5);
        System.out.println("sum = " + sum);
    }
    public static int getSum(int n){
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += i;
        }
        return sum;
    }
}

二、方法的重载

方法的重载就是在一个类中,允许有同名的方法,但仅凭返回值类型的不同不能够实现方法的重载,需要参数的个数、参数的类型、参数的顺序不同才能实现方法的重载

参数的类型不同

    //方法的重载
    public static int getSum(int a,int b){
        return 10;
    }
    public static void getSum(byte a,double b){
        return;
    }

参数个数不同

    //方法的重载
    public static void printInfo(int a,int b){
        return;
    }
    public static void printInfo(int a,int b,int c){
        return;
    }

参数的顺序不同

    //方法的重载
    public static void divide(int a,double b){
        System.out.println(a+b);
    }
    public static void divide(double b,int a){
        System.out.println(a+b);
    }

三、拓展

return 数据(只能在有返回值的方法使用)

1、结束本次调用的方法
2、把数据返回到调用方法的地方

return;(只能在无返回值的方法中使用)

Java里参数的传递机制

不管是基本数据类型还是引用类型,归根结底都是值的传递,只不过基本数据类型传递的是其里面保存的值(字面量),而引用数据类型传递的是其保存的地址



基本数据类型的参数传递机制,number调用方法后的结果没有改变,说明调用方法时只是将number变量里面的值10传递给了形参

public class Demo {
    public static void main(String[] args) {
        int number = 10;
        System.out.println("main方法里面的number值是:"+number);//10
        test(number);
        System.out.println("调用方法后的number值是:"+number);//10
    }
    public static void test(int number){
        System.out.println("test方法里面的number值是:"+number);//10
        number = 20;
        System.out.println("改变后的test方法里面的number值是:"+number);//20
    }
}


引用类型的数组arr将自己保存的地址[I@2f7a2457作为实参传递给同样为数组的list,这个时候arr和list都同时指向堆内存里面的一个数组对象,所以当list数组对索引为1的元素改变时,arr数组中索引为1的元素也同样改变,所以引用数据类型本质上也是值传递,只不过传递的是地址值

public class Demo {
    public static void main(String[] args) {
        int arr[] = {10,20,30};
        System.out.println("这是数组arr的地址:"+arr);//[I@2f7a2457
        System.out.println("调用方法前的 arr[1] = "+arr[1]);//20
        test(arr);
        System.out.println("调用方法后的 arr[1] = "+arr[1]);//99
    }
    public static void test(int list[]){
        System.out.println("改变数组前 list[1] = "+list[1]);//20
        list[1] = 99;
    }
}

四、总结

通过本文,我们学到了定义方法的四种不同形式,通过有无参数和有无返回值构建了不同类型的方法,把频繁用到的功能封装成一个个的方法,随调随用,实现了代码的复用性,减轻了开发的负担,提高了代码的灵活度,而且Java设计的方法的重载,让我们对方法的命名有了更简便的方式,防止命名空间被污染,还拓展了Java参数间的传递机制,不论是基本数据类型还是引用数据类型,都是值传递。好了,骚话吐到嘴边却说不出来,还是那句话,虚心接受,如果你觉得对你有帮助的话,希望给个点赞,十分感谢

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值