Java面向对象-方法的值传递和引用传递
Java面向对象-方法的值传递和引用传递
发布时间:『 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); }} |
下面我们给下内存示意图:

本文来自博客园,作者:Javanumberone,转载请注明原文链接:https://www.cnblogs.com/stm32stm32/p/5804927.html
posted on 2016-08-24 22:42 Javanumberone 阅读(308) 评论(0) 收藏 举报
浙公网安备 33010602011771号