方法中最重要的部分之一就是方法的参数,参数属于局部变量,当对象调用方法时,参数变量必须有具体的值
传值机制
1、在Java中,方法的所有参数都是“传值”的,方法中的参数变量的值是调用指定的值的拷贝
2、改变参数的值,不会影响向此参数“传值”的变量的值
3、参数如同“复印件”,改变“复印件”不会影响到“原件”
一、基本数据类型参数的传值
向该参数传递的值的级别不可以高于该参数的级别
如:不可以向int型参数传递一个float值,但可以向double型参数传递一个float值
级别由低到高:
byte short char int long float double
class getSum
{
int add(int x,int y)
{
return x + y;
}
}
public class Example_6
{
public static void main(String args[])
{
getSum com = new getSum();//使用默认的构造方法创建对象
int m = 100;
int n = 200;
int result = com.add(m,n)//将m,n的值传递给x,y
System.out.println(result);
}
}
二、引用类型参数的传值
1、Java引用型数据包括数组,对象,接口
2、“传值”传递的是变量中存放的“引用”(如同C语言中的地址),而不是变量的实体
3、改变参数变量所引用的实体,会导致原变量的实体发生同样的变化
4、改变参数中存放的“引用”,不改变向其传值的变量中存放的“引用”
可变参数
1、在声明方法时不给出参数列表中从某项开始到最后一项参数的名字和个数
2、参数的类型必须相同
3、使用“…”表示若干个参数
public void f(int …x)
public void g(double a,int …x)
方法f从第一个到最后一个都是Int型数据,x为参数代表
方法g第一个是double型,接下去都是int型,x为参数代表
4、参数代表通过下标运算来表示具体某个参数,x[0],x[1]…
5、x.length等同于x所代表的参数个数
public int getSum(int ...x)
{
int sum = 0;
for(int i = 0;i < x.length;i++)
{
sum = sum + x[i];
}
return sum;
}
6、特殊的for语句
用for语句遍历参数代表所代表的参数
for(声明循环变量:参数代表)
{
…
}
#将上一步改为for语句
for(int param:x)
{
sum = sum + param;
}