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

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

0
发布时间:『 2016-08-21 14:21』  博客类别:Java核心基础  阅读(197) 评论(0)

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

 

方法的值传递:

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

 

上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package  com.java1234.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.java1234.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);
     }
}

 

下面我们给下内存示意图:

QQ鎴浘20160821142042.jpg

转载于:https://www.cnblogs.com/stm32stm32/p/5804927.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值