Java中的参数传值

参数传值

方法中最重要的部分就是方法的参数,参数属于局部变量,当对象调用方法时,参数即被分配内存空间,并要求调用者向参数传递值。即方法被调用时,参数变量必须有具体的值。

1.传值机制

在Java中,方法的所有参数都是“传值”的,即 方法中参数变量的值是调用者指定的值的复制。
比如说,如果向方法的int型参数x传递一个int值,那么参数x得到的值就是传递的值的复制。因为传递的是值的复制,那么方法改变参数的值的话,并不影响向参数“传值”的变量的值。
举个例子,我向你通过邮箱发送一个我的本地文档,你收到邮件后,对文档进行了更改。但是你的更改并不会影响到我的文档。

2.基本数据类型参数的传值

我们在了解这个之前,先来看一下Java基本数据类型的级别。

下列是Java基本数据类型从低到高的排列。
byte---short---char---int---long---float---double

注意:String不是基本类型。

在Java基本数据类型的传值中,向该参数传递的值的级别要小于等于该参数的级别,比如不可以向int型参数传递一个long值,但是可以向float型参数传递一个long值。

示例代码

 public class jiafa() {
		 int add(int x,int y) {
			 return x+y;
		 }
	 }


public class lizi{
public static void main(String args[]) {
	jiafa jia = new jiafa();
	int m=20;
	int n=10;
	int result = jia.add(m,n);//将m,n的值“传值”给x,y
	System.out.println(result);
    result = jia.add(10+m,n*2);//将10+m,n*2表达式的值“传值”给x,y
    System.out.println(result);
   }
}

3.引用类型参数的传值

Java的引用型参数包括 数组,对象,接口。 当参数引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。 注意一下,对于两个相同类型的引用型变量,如果有同样的引用,就会用同样的实体。因此,如果改变参数变量引用的实体,就会导致原变量的实体发生同样的变化。
但是,改变参数中存放的“引用”不会影响向其传值的变量中存放的“引用”。

You.java

public class You{
		int youcount;
		you(int count){
			youcount = count;
		}
	}


car.java

public class Car{
        void onCar(You you){
        you.youcount=you.youcount-5;//开车消耗了油
        }
    }

public class lizi{
public static void main(String args[]){
         You qiyou = new You();//创建油对象
         System.out.println("汽车还有这么多油"+qiyou.youcount);
         Car car = new Car();//创建汽车对象
         System.out.println("汽车开始消耗汽油");
         car.onCar(qiyou);
         System.out.println("目前汽车还剩的油量为"+car.youcount);
         }
       }
         
         

Car类创建的“汽车”对象调用onCar(You you)方法时,将You类创建的“汽油”对象传递给该方法的参数you,就是模拟汽车使用汽油。

在主类中将You类创建的“油”对象qiyou传递给onCar(You you)方法的参数you,该方法消耗了you的油量,那么qiyou的油量就会同样发生变化。

暂时只写了参数传值的这部分。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值