zoukankan      html  css  js  c++  java
  • 值传递和引用传递

    1.值传递

     1 package com.sky.test;
     2 
     3 public class Test {
     4     public static void main(String[] args) {
     5         int i = 5;
     6         valueTransmit(i);
     7         System.out.println("方法结束后的i : " + i);
     8         
     9     }
    10     
    11     public static void valueTransmit(int i){
    12         i++;
    13         System.out.println("方法中的i : " + i);
    14     }
    15 }

    结果为:

    方法中的i : 6
    方法结束后的i : 5

    可以清楚的看到,方法中的i的值改变了,进行++操作,但是当方法结束后,i的值又变回了5,也就是方法调用之前的值,这就是值传递的涵义。

    2.引用传递

     1 package com.sky.test;
     2 
     3 public class Test {
     4     public static void main(String[] args) {
     5         
     6         User user = new User("10086", "张三");
     7         quoteTransmit(user);
     8         System.out.println("方法结束后的user对象的值:"+user);
     9     }
    10     
    11     public static void quoteTransmit(User user){
    12         user.setUserId("10000");
    13         user.setName("李四");
    14         System.out.println("方法中的user的值:"+user);
    15     }
    16 }
    17 
    18 class User {
    19     private String userId;
    20     private String name;
    21     
    22     public User(String userId, String name) {
    23         this.userId = userId;
    24         this.name = name;
    25     }
    26     
    27     public String getUserId() {
    28         return userId;
    29     }
    30     public void setUserId(String userId) {
    31         this.userId = userId;
    32     }
    33     public String getName() {
    34         return name;
    35     }
    36     public void setName(String name) {
    37         this.name = name;
    38     }
    39     @Override
    40     public String toString() {
    41         return "User [userId=" + userId + ", name=" + name + "]";
    42     }
    43     
    44 }

    结果为:

    方法中的user的值:User [userId=10000, name=李四]
    方法结束后的user对象的值:User [userId=10000, name=李四]

    主方法中创建了一个user对象,赋值,方法中将这个对象作为参数传递,方法中并且修改了user的属性值,并且修改后打印,当方法结束后在主方法中继续打印user对象,发现两次输出的值完全一样,方法中修改了,这个对象的值意味着方法结束后也是被修改了,这就是引用传递。

  • 相关阅读:
    Handler使用入门 下载文件
    基于QT前端的mplayer播放器2
    HTTP协议详解(真的很经典)
    安装 gentoo minimal cd
    linux 分区方案
    MFC 中添加按钮和事件
    makefile 学习
    堆和栈
    paste命令使用
    cut用法
  • 原文地址:https://www.cnblogs.com/yujiwei/p/6886179.html
Copyright © 2011-2022 走看看