JAVA基础-什么是方法?

什么是方法?

一、方法含义

抽象来说方法就是类的动作。
具体来说方法就是数据数据操作定义为一个整体,也可以说,方法就是组合在一起执行操作语句(代码)的集合。
在其他语言中,将方法称为过程(procedure)或函数(function)。JAVA可将方法细分为:带返回值的为函数,void定义的方法称为过程。

二、定义方法

定义方法的语法
修饰符 返回值类型 方法名(参数列表)
{
方法体
}

这里写图片描述

方法调用的方式

一、调用本类中的方法

方法一、被调用方法修饰符为static ,可以在其他方法中直接调用。

public class Method {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
            System.out.println( max(1,2) );
    }

    public static int max(int num1,int num2)
    {
        int result = num1 > num2 ? num1 : num2;
        return result;
    }

}

方法二、被调用方法未被static修饰,调用时需要通过类的实例化进行调用。

public class Method {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Method method = new Method();
            System.out.println( method.max(1,2) );
    }

    public int max(int num1,int num2)
    {
        int result = num1 > num2 ? num1 : num2;
        return result;
    }

}

二、调用外部的类的方法。

方法一、被调用方法修饰符为public ,不是静态方法,可以类的实例化进行调用。

Method.java

public class Method {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Max method = new Max();
            System.out.println( method.max(1,2) );
    }

}

Max.java

public class Max {

    public int max(int num1,int num2)
    {
        int result = num1 > num2 ? num1 : num2;
        return result;
    }

}

方法二、被调用方法修饰符为public static,可以className.method的格式进行调用。

Method.java

public class Method {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.print(Max.max(1, 2));
    }

}

Max.java

public class Max {

    public static int max(int num1,int num2)
    {
        int result = num1 > num2 ? num1 : num2;
        return result;
    }

}

调用方法执行过程

当调用一个方法时,系统会创建一个活动记录(也称为活动框架),用于保存方法中的参数和变量。
活动记录置于一个内存区域中,称为调用堆栈(call stack),也称为执行堆栈、运行时堆栈,或者简称为“堆栈”。
对堆栈不理解的伙计可以去看我之前发表一篇关于堆栈的博客
堆栈\栈\堆之间的区别

将演示下面代码堆栈的活动

public class Method {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i = 1, j = 2;   //enter stack
        int k = max(i, j) //call method , skip method's address
    }

    public static int max(int num1,int num2)
    {
        int result = num1 > num2 ? num1 : num2;
        return result;
    }

}

这里写图片描述

当一个方法调用另一个方法时,调用者的活动记录保持不动,一个新的活动记录被创建用于被调用的新方法中。一个方法结束返回到调用者时,其相应的活动记录也会被释放。

将演示下面代码堆栈的活动

public class Method {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i = 1, j = 2;   //enter stack
        System.out.print(max(i, j));    //call method , skip method's address
    }

    public static int max(int num1,int num2)
    {
        int result = getResult(num1,num2);
        return result;
    }

    public static int getResult(int num1,int num2)
    {
        return num1 > num2 ? num1 : num2;
    }

}

这里写图片描述

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值