一、方法
   (1)方法:就是完成特定功能的代码块。
      注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法。
   (2)格式:
      修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
       方法体语句;
       return 返回值;
      }

      修饰符:目前就用 public static。
      返回值类型:就是功能结果的数据类型
      方法名:就是起了一个名字,方便我们调用该方法。
      参数类型:就是参数的数据类型
      参数名:就是变量

      参数分类:
         实参:实际参与运算的数据
         形参:方法上定义的,用于接收实际参数的变量

      方法体语句:就是完成功能的代码块
        return:结束方法
        返回值:就是功能的结果,由return带给调用者。
   (3)两个明确:
      返回值类型:结果的数据类型
      参数列表:参数的个数及对应的数据类型
  
   (4)方法的注意事项
      A:方法不调用不执行
      B:方法之间是平级关系,不能嵌套定义
      C:方法定义的时候,参数是用,隔开的
      D:方法在调用的时候,不用在传递数据类型
      E:如果方法有明确的返回值类型,就必须有return语句返回。

二、方法的重载

  在同一个类中,方法名相同,参数列表不同,与返回值无关。

  说明:参数列表不同(3种情况)

      a:个数不同

      b:顺序不同

      c:数据类型不同

三、权限修饰符

  

修饰符

当前类

同一包内

子孙类

其他包

public

Y

Y

Y

Y

protected

Y

Y

Y

N

default

Y

Y

N

N

private

Y

N

N

N

 

  说明:public修饰符,对所有类可见

     protected(指受保护的)当前类,同一包下其他类及其子类能访问

     default(默认修饰符,不写表示默认)只能当前类或者同一包下的其他类访问

     private(私有)只能当前类访问

四、方法的执行过程

java中什么叫方法体不同 方法类型java_修饰符

 

五、方法的内存加载



class MethodDemo
{
    public static void main(String[] args) 
    {
        int a = 3;
        int b = 4;
        int sum = getSum(a,b);
        System.out.println("sum="+sum);
    }
    public static int getSum(int a , int b)
    {
        return a + b;
    }
}



内存示意图

  

java中什么叫方法体不同 方法类型java_main方法_02

说明:首先会加载main方法加载进栈内存中,并执行main方法中的代码,分别给a变量开辟空间并存放3,给b变量开辟空间存放4。当程序执行到int sum = getSum(a,b);时,会将getSum函数加载进栈内存中,同样在getSum所属的栈区域中开辟a和b变量空间,接受main方法中的getSum(a,b);传递的值。然后执行getSum函数中的代码,当getSum函数执行结束后,函数会出栈(弹栈)。程序回到main方法的调用语句int sum = getSum(a,b);处,并将getSum方法执行完返回的结果赋值给sum变量,程序继续往下执行。打印sum的值。