zoukankan      html  css  js  c++  java
  • 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!!!
  • 相关阅读:
    HDL之Bitwise operation
    Embedded之memory type
    RFID之UID
    VHDL之package
    QS之vsim
    潭州课堂25班:Ph201805201 爬虫高级 第八课 AP抓包 SCRAPY 的图片处理 (课堂笔记)
    潭州课堂25班:Ph201805201 爬虫高级 第七课 sclapy 框架 爬前程网 (课堂笔)
    潭州课堂25班:Ph201805201 爬虫高级 第六课 sclapy 框架 中间建 与selenium对接 (课堂笔记)
    潭州课堂25班:Ph201805201 爬虫高级 第五课 sclapy 框架 日志和 settings 配置 模拟登录(课堂笔记)
    潭州课堂25班:Ph201805201 爬虫高级 第四课 sclapy 框架 crawispider类 (课堂笔记)
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14613111.html
Copyright © 2011-2022 走看看