zoukankan      html  css  js  c++  java
  • Java面向对象-方法的值传递和引用传递

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

    方法的值传递:

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

    上代码:

     1 package com.java1234.chap03.sec03;
     2  
     3 public class Person {
     4  
     5     void speak(int age){
     6         System.out.println("我今年"+age+"岁了");
     7         age=24; // 作用范围是方法里
     8     }
     9      
    10     public static void main(String[] args) {
    11         Person xiaoli=new Person();
    12         int age=23;
    13         xiaoli.speak(age);
    14         System.out.println(age);
    15     }
    16 }

    运行结果

    我今年23岁了
    23

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

    上代码:

     1 package com.java1234.chap03.sec03;
     2  
     3 class SanWei{
     4     int b; // 胸围
     5     int w; // 腰围
     6     int h; // 腿围
     7 }
     8  
     9 public class Person {
    10  
    11     void speak(int age,SanWei sanWei){
    12         System.out.println("我今年"+age+"岁了,我的三围是:"+sanWei.b+","+sanWei.w+","+sanWei.h);
    13         age=24; // 作用范围是方法里
    14         sanWei.b=80; // 胸围改成80
    15     }
    16      
    17     public static void main(String[] args) {
    18         Person xiaoli=new Person();
    19         int age=23;
    20         SanWei sanWei=new SanWei();
    21         sanWei.b=90;
    22         sanWei.w=60;
    23         sanWei.h=90;
    24         // age传递的是值 ,sanWei是对象,传递的是引用(地址,c里叫指针)
    25         xiaoli.speak(age,sanWei);
    26         System.out.println(age);  
    27         System.out.println(sanWei.b);
    28     }
    29 }

     运行结果

    我今年23岁了,我的三围是:90,60,90
    23
    80

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

  • 相关阅读:
    小兔生仔和汽水换瓶的两个算法
    dpi 编程
    作者赠送的《我的第一本c++书》收到啦
    什么是程序员的优良品质
    如何把事情做对?
    学习应有的态度
    魔方数算法
    我的第二本c++教科书
    如何处理人际关系
    电动玩具的开发思路
  • 原文地址:https://www.cnblogs.com/eaglezb/p/5969285.html
Copyright © 2011-2022 走看看