基本类型变量和引用类型变量的实参和形参

传参即是实参的值赋给形参。对于基本类型的形参,在方法内部对形参的修改只会局限在方法内部,不会影响实参。

比如,给Calculator增加一个increase(int)方法:

class Calculator {
    public int add(int a, int b) {    
        return a + b;
    }
    
    public int increase(int a) {
        return ++a;
    }
    public static void main(String args[]) {
		Calculator calculator = new Calculator();
		int x = 10;
		int y = calculator.increase(x);
		System.out.println(x);
	} 
}

increase(int a)方法定义了一个int形参a,将x作为实参传入,虽然方法内部做了自增操作,但是并不会改变x的值。因此,打印出来的x的值是10而不是11


引用类型的实参传入方法中时,是将对象的引用传入,而非对象本身。因此,在方法执行时,实参和形参会引用到同一个对象。

在方法结束时,形参占据的内存虽然会被释放,但是通过形参对对象进行的修改则不会丢失,因为对象依然保存在堆中。

例如,Car的构造器中如果对engine进行修改:

public Car(int color, int speed, Engine engine) {
    this.color = color;
    this.speed = speed;
    engine.power = 200; // 这里讲engine的power赋值为200
    this.engine = engine;
}

则在main方法中执行如下代码

Engine myEngine = new Engine(180)
Car myCar = new Car(0xffffff, 100, myEngine);
System.out.println(myEngine.power);

Car myCar = new Car(0xffffff, 100, myEngine);这行代码中,我们将myEngine作为实参传递给了Car的构造器,由于构造器中的engine形参此时和myEngine指向同一个对象,因此执行完构造器后,myEnginepower值会从180变成200

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值