zoukankan      html  css  js  c++  java
  • Java中参数传递问题

    Java中参数传递可以分为值传递和引用传递,话不多说直接撸代码

    1.传原始类型(int,String等)数据是值传递

     1 package test_1;
     2 public class Test {
     3     public static void main(String[] args) {
     4         String str = new String("abc");
     5         change1(str);
     6         System.out.println(str);
     7     }
     8     
     9     private static void change1(String str1) {
    10         str1 += "123";
    11         System.out.println(str1);
    12     }
    13 }

    结果:abc123
             abc

    分析:最后输出的还是abc,说明在函数里面改变的值不是它本身

    2.传对象是引用传递(包括数组)

     1 package test_1;
     2 class Time {
     3     public int hour;
     4     public int minute;
     5     public int second;
     6 }
     7 
     8 public class ObjectParamTransfer {
     9     Time time;
    10 
    11     public static void main(String[] args) {
    12         ObjectParamTransfer opt = new ObjectParamTransfer();
    13         opt.time = new Time();
    14         opt.time.hour = 11;
    15         opt.time.minute = 22;
    16         opt.time.second = 33;
    17 
    18         opt.method(opt.time);
    19         System.out.println("执行方法后的time的属性值");
    20         System.out.println("hour=" + opt.time.hour);
    21         System.out.println("minute=" + opt.time.minute);
    22         System.out.println("second=" + opt.time.second);
    23 
    24     }
    25 
    26     private void method(Time t) {
    27      
    28         t.hour = 44;
    29         t.minute = 55;
    30         t.second = 60;
    31     }
    32 }

    结果:执行方法后的time的属性值
    hour=44
    minute=55
    second=60

    分析:方法里面传进去的是对象的地址,那么在方法体中进行的操作就可以改变这个对象

    总结:当要传递的参数是原始类型数据的时候是值传递,当要传递的参数是对象的时候是引用传递

    第一篇博客,不足之处欢迎在评论区中指正,谢谢!               

                                                                                                                     

    心之所向,素履以往
  • 相关阅读:
    LeetCode 264. Ugly Number II
    LeetCode 231. Power of Two
    LeetCode 263. Ugly Number
    LeetCode 136. Single Number
    LeetCode 69. Sqrt(x)
    LeetCode 66. Plus One
    LeetCode 70. Climbing Stairs
    LeetCode 628. Maximum Product of Three Numbers
    Leetcode 13. Roman to Integer
    大二暑假周进度报告03
  • 原文地址:https://www.cnblogs.com/yinbiao/p/8052422.html
Copyright © 2011-2022 走看看