方法的基础知识

一、方法概念

方法是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。

注意:

1.方法必须先创建才可以使用,这一过程是方法定义。

2.方法创建后并不是直接可以运行的,需要手动使用后才能执行,这一过程是方法调用。

二、方法的定义和调用

1.无参数方法的定义和调用

 定义格式:

public static void 方法名(){

       //方法体;

}

 调用格式:方法名();

方法调用过程:1)main()方法进栈执行

                         2)执行main方法中的代码

                         3)某个方法被调用

                         4)被调用的方法执行完毕,从内存中消失

                         5)继续执行main方法,直到main方法中无代码执行,main方法消失,程序结束

    总结:每个方法被调用执行的时候都会进入栈内存,拥有比独立的内存空间,方法内部代码调用完毕会从栈内存中弹栈消失。

2.带参数方法的定义和调用

定义格式:

public static void 方法名 (参数1) {
    方法体;
}

public static void 方法名 (参数1, 参数2, 参数3...) {
    方法体;
}

     注意:1)方法定义时, 参数中的数据类型和变量名都不能缺少,否则报错。

           2)方法定义时,多个参数之间使用逗号(,)分隔。

调用格式:方法名(参数);

                  方法名(参数1,参数2);

     注意:方法调用时,参数的数量与类型必须与方法定义中的设置相匹配。

形参:方法定义中的参数。

实参:方法调用中的参数。

3.带返回值方法的定义和调用

定义格式:

public static 数据类型 方法名(参数){

          return 数据;

}

注意:方法定义时return后面的返回值与方法定义上的数据类型 要匹配,否则程序报错。

调用格式:方法名(参数);

                  数据类型 变量名=方法名(参数);

注意:方法的返回值通常会使用变量接受,否则返回值将无意义。

三、通用格式

格式:

public static 返回值类型 方法名(参数){

        方法体;

        return 数据;

}

 格式解释:1)public static:修饰符

                   2)返回值类型:方法操作完毕之后返回的数据的数据类型。如果方法操作结束没有数据返回,那么返回值类型为void,并且方法体中一般不写return。

                   3)方法名:调用方法时使用的标识。

                   4)参数:由数据类型和变量名组成,多个参数之间用逗号隔开。

                   5)方法体:完成方法功能的代码块。

                   6)return:如果方法操作完毕有数据返回,将数据返回给调用者。

方法定义时需要两个明确:1)明确返回值类型。主要是明确方法操作完毕之后是否有数据返回,如果没有,写void,如果有,写相应的数据类型。

                                            2)明确参数。主要是明确参数的类型和数量。

调用方法时需注意:1)void类型的方法,直接调用即可。

                                 2)非void类型的方法,推荐用变量接受调用。

四、方法重载

概念:方法重载指在同一个类中定义的多个方法之间的关键,需要满足:多个方法在同一个类中、多个方法具有相同的方法名、多个方法的参数类型和数量不同。多个条件都满足的多个方法相互构成重载。

例如:

//定义三个重载方法max(),第一个方法求两个int值中的最大值,
// 第二个方 法求两个double值中的最大值,
// 第三个方法求三个double值中的最大值, 并分别调用三个方法。
public class test3 {
    public static void main(String[] args) {
        int r1=max(8,6);
        double r2=max(3.14,2.12);
        double r3=max(1.11,4.44,3.11);
        System.out.println(r1);
        System.out.println(r2);
        System.out.println(r3);
    }
    public static int max(int a,int b){
        if (a>b){
            return a;
        }else {
            return b;
        }
    }
    public static double max(double a,double b){
        if (a>b){
            return a;
        }else {
            return b;
        }
    }
    public static double max(double a,double b,double c){
        if (a>b&&a>c){
            return a;
        }else if (b>a&&b>c){
            return b;
        }else{
            return c;
        }
    }
}

注意:1)重载仅对应方法的定义,与方法的调用无关。

           2)重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关。

五、参数传递

传递基本数据类型:基本数据类型的参数,形式参数的改变,不影响实际参数。

                                每个方法在栈内存中都会有自己独立的栈空间,方法运行结束就会弹栈消失。

传递引用数据类型:对于引用数据类型的参数,形式参数的改变,会影响实际参数的值。

                                引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈,堆内存中的数据也已经是改变后的结果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值