• 4.2Java参数传值机制


    4.2Java参数传值机制

    在Java中,方法中所有参数都是"值传递",也就是"传递值的副本"

    我们得到的是"原参数的复印件,而不是原件"。复印件不会影响原件

    本章内容

    • 基本数据类型参数的传递

    • 引用类型参数的传递


    基本数据类型参数的传递

    传递的是值的副本,不会影响原件。

    引用类型参数的传值

    • 传递值得副本,引用类型指的是"对象的地址",副本和原参数都指向了同一个"地址"

    • 改变"副本指向地址对象的值意味着原参数指向对象的值也发生了改变"---无论原件还是复印件指向对象的地址发送改变都可以使对象属性发生改变

    实例:

    /**
    * 测试参数传值机制
    * @author Lucifer
    */
    public class UserNo4 {
       int id;
       String name;
       String pwd;

       //写一个方法
       public UserNo4(int id, String name){
           this.id = id;
           this.name = name;
           return;
      }

       //再写一个方法
       public void testParameterTransfer01(UserNo4 u){
           u.name = "JunkingBoy";
           return;
      }


       //再写一个测试方法
       //public void testParameterTransfer02(UserNo4 u){
           //u = new UserNo4(19,"Harden");
           //return;
       //}


       //main方法
       public static void main(String[] args) {
           UserNo4 u1 = new UserNo4(18,"Lucifer");
           u1.testParameterTransfer01(u1);
           System.out.println(u1.name);

           //u1.testParameterTransfer02(u1);
           //System.out.println(u1.name);
      }
    }

    解析视图:

    实例2:

    /**
    * 测试参数传值机制
    * @author Lucifer
    */
    public class UserNo4 {
       int id;
       String name;
       String pwd;

       //写一个方法
       public UserNo4(int id, String name){
           this.id = id;
           this.name = name;
           return;
      }

       //再写一个方法
       public void testParameterTransfer01(UserNo4 u){
           u.name = "JunkingBoy";
           return;
      }


       //再写一个测试方法
       public void testParameterTransfer02(UserNo4 u){
           u = new UserNo4(19,"Harden");
           return;
      }


       //main方法
       public static void main(String[] args) {
           UserNo4 u1 = new UserNo4(18,"Lucifer");
           u1.testParameterTransfer01(u1);
           System.out.println(u1.name);

           u1.testParameterTransfer02(u1);
           System.out.println(u1.name);
      }
    }

    解析视图2:

    特点概括

    特点:

    • 传递的是值、变量的地址而不是变量的本身。

    • 多个变量指向一个值是指通过上一题的创建对象传入u1开始两个对象的地址一致。

    • 方法完成后即关闭,回到内存分析一讲中。这时候在建新对象就会指向另一个对象的地址

    It's a lonely road!!!
  • 相关阅读:
    Navicat for MySQL 安装和破解(完美)
    office2016系列产品关闭时卡顿
    普通程序员
    程序员赚外快到底有哪些方法?(干货篇)
    win10 解决 WMI Provider Host 占用CPU过高问题
    WMI Provider Host
    KMPlayer 一打开总是出现右面的窗口 导航区 怎样设置不会自动打开
    access denied for user 'root'@'localhost'
    mysql windows 安装
    docker run hello-world失败
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14613111.html
Copyright © 2020-2023  润新知