方法及方法参数传递

方法

一个可以完成独立功能的代码块

语法

返回值类型 方法名(形参){
}
class Test{
    public static void main(String[] args){
        
        int x = add(3,5);
        System.out.println(x);
        System.out.println(add(x,5));
    }
    public static int add(int a,int b){
        int sum = a+b;
        return sum;
    }   
}
  1. 返回值: 必须有

  2. 方法名字:必须有

  3. 小括号: 必须有

  4. 形式参数:根据需要设定,也可以没有形式参数

  5. 方法可以看成完成功能的代码块

  6. 大括号: 必须有: 但是功能语句可以任意写

方法的使用

  • 方法有static修饰:类名.方法名+参数列表[个数,顺序,类型必须一致]
  • 方法没有static修饰:对象名.方法名+参数列表[个数,顺序,类型必须一致]
  • 方法在同一个类中:方法名+参数列表[个数,顺序,类型必须一致]

方法签名

方法名字+参数列表[类型,个数,顺序:必须一致]

方法重载(overload)

在同一个类中,方法名字相同,参数列表不同

//计算两个数的和
    public static int add(int a,int b){
        int sum = a+b;
        System.out.println(sum);
        return sum;
    }
//计算三个数的和
    public static int add(int a,int b,int c){
        int sum = a+b+c;
        System.out.println(sum);
        return sum;
    }
//计算四个数的和
    public static int add(int a,int b,int c,int d){
        int sum = a+b+c+d;
        System.out.println(sum);
        return sum;
    }

return 语句

  1. 方式:将方法运算的结果返回给方法调用着,方法内部将运算结果使用语句:

    return 值/变量/表达式;

  2. 方法返回值的位置,必须写与方法内部返回值的数据一致的数据类型

  3. 注意:返回的是数据,不是变量或者表达式

数组

一段连续的存储空间 用来存放某种类型的多个变量值

语法

//动态创建之先声明后赋值
数据类型[] 数组名;
数组名 = new 数据类型[数组长度];
//静态创建之复杂写法
//1.声明的同时赋值
数据类型[] 数组名 = new 数据类型[] {多个以英文逗号分隔的元素};
//2.先声明后赋值
数据类型[]  数组名;
数组名 = new 数据类型[] {多个以英文逗号分隔的元素};
//简写
数据类型[] 数组名 ={多个以英文逗号分隔的元素};

特点

  • 创建以后 长度固定不变
  • 只能存同一种类型 的多个变量值

jvm存储

  1. 基本数据类型 打印的时具体的值 因为它的值存放在栈中
  2. 引用数据类型 打印的时候是一个引用地址 因为它具体的存放区域存放堆中 String除外

数组的遍历

//数组的长度:数组名.length
int[] arr={2,4,12,124,122};
for(int i = 0;i

方法的参数传递

  • 值传递:方法传递的是值
    • 形式参数类型是基本数据类型
    • 基本类型数据传递的是值
  • 值引用:方法传递的是值的引用
    • 形式参数类型是引用数据类型
    • 引用传递其实传的是地址,形式参数类型是引用数据类型或数组。
    • 实际参数(数据)是对象(或数组),这时实际参数与形式参数指向同一个地址
    • 在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被 保留了下来,所以方法执行中形式参数的改变将会影响实际参数

注意事项

方法调用时,实际参数把它的值传递给对应的形式参数,相当于拷贝了一份值给形式参数,所以方法执行中形式参数值的改变不影响实际参数的值。

  • 基本数据不影响原来的值
  • 引用数据不影响原来的地址值:
    • 引用地址,引用的值,如果被改变,原来引用的的值所引用的值也会被改变,因为都是同一个引用

你可能感兴趣的:(方法及方法参数传递)