Java面向对象-方法的值传递和引用传递

本文深入探讨了在Java中方法参数传递的两种方式:值传递和引用传递。通过实例代码详细解释了基本类型和对象类型在方法调用时的行为差异,展示了如何影响外部变量和对象属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法的值传递:

值传递 在方法里改变变量的值 作用范围仅仅是方法里 对外面不影响:

 

上代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.java.chap03.sec03;

 

public class Person {

 

    void speak(int age){

        System.out.println("我今年"+age+"岁了");

        age=24// 作用范围是方法里

    }

     

    public static void main(String[] args) {

        Person xiaoli=new Person();

        int age=23;

        xiaoli.speak(age);

        System.out.println(age);

    }

}

 

引用传递,传递的是地址,对象里的属性在方法里值修改,对外面有影响,我们通过对象.属性可以获取到最新的数据;

上代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

package com.java.chap03.sec03;

 

class SanWei{

    int b; // 胸围

    int w; // 腰围

    int h; // 腿围

}

 

public class Person {

 

    void speak(int age,SanWei sanWei){

        System.out.println("我今年"+age+"岁了,我的三围是:"+sanWei.b+","+sanWei.w+","+sanWei.h);

        age=24// 作用范围是方法里

        sanWei.b=80// 胸围改成80

    }

     

    public static void main(String[] args) {

        Person xiaoli=new Person();

        int age=23;

        SanWei sanWei=new SanWei();

        sanWei.b=90;

        sanWei.w=60;

        sanWei.h=90;

        // age传递的是值 ,sanWei是对象,传递的是引用(地址,c里叫指针)

        xiaoli.speak(age,sanWei);

        System.out.println(age);  

        System.out.println(sanWei.b);

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值