zoukankan      html  css  js  c++  java
  • 方法的参数传递

    方法的参数传递(重难点):

    1.形参:方法声明时小括号内的参数。

    2.实参:调用方法时,实际传入的参数的值。

    记住:Java中的参数传递机制是:值传递机制

    1)形参是基本数据类型的:将实参的值传递给形参的基本数据类型的变量。

    2)形参是引用数据类型的:将实参的引用数据类型变量的值(对应堆空间的实体的首地址的值)传递给形参的引用数据类型的变量。

    实例1):形参是基本数据类型的

     1 package com.cnblogs.java;
     2 
     3 public class ZhiChuanDi {
     4     public static void main(String[] args) {
     5         ZhiChuanDi zcd=new ZhiChuanDi();
     6         int i=8;
     7         int j=4;
     8         zcd.swap(i, j);//此处是值传递,只是把i和j的值传递给了形参m和n
     9         //调用swap()方法交换的只是m和n的值,i和j的值并未改变。
    10         System.out.println("i="+i+"	j="+j);//i和j并未改变
    11         
    12     }
    13     public void swap(int m,int n){//形参是基本数据类型
    14         int temp=m;
    15         m=n;
    16         n=temp;
    17         System.out.println("m="+m+"	n="+n);
    18         //m和n的值交换了
    19     }
    20     
    21 }

    运行结果:

    m=4  n=8

    i  = 8   j=4

    对应的内存图:new出来的ZhiChuanDi()存在堆空间,main方法中的 i 和 j 局部变量,存储在栈空间,Swap()方法中的参数m 和 n 局部变量,存储在栈空间,调用swap()方法时,只不过是把i 的值 8 传递给了 m ,把 j 的值 4 传递给了 n ,然后交换的是 m和 n 的值,打印 i 和j 的值不会改变。

    2)形参是引用数据类型的

     1 package com.cnblogs.java;
     2 
     3 public class ZhiChuanDi1 {
     4     public static void main(String[] args) {
     5         ZhiChuanDi1 tt=new ZhiChuanDi1();
     6         DataSwap ds=new DataSwap();
     7         tt.swap(ds);
     8         System.out.println("ds.i="+ds.i+"	ds.j="+ds.j);
     9     }
    10     public void swap(DataSwap d){
    11         int temp=d.i;
    12         d.i=d.j;
    13         d.j=temp;
    14     }
    15 }
    16 class DataSwap{
    17     //设置属性i和j
    18     int i=10;
    19     int j=5;
    20 }

    运行结果:

    ds.i=5  ds.j=10

    在内存中的存储:在内存中开辟出一个堆空间new DataSwap(),包括属性int i=10;int j=5; 然后对象ds指向堆空间的首地址,tt调用Swap()方法,把ds的首地址的值传递给了引用数据类型的形参DataSwap d,然后d是局部变量,在栈空间的首地址也指向new DataSwap(),然后创建temp 临时变量,交换的就是d.i和d.j

  • 相关阅读:
    web安全
    WCF通信架构
    WCF地址
    WCFContracts(契约)
    分布式中的王者WCF
    SOAP 介绍
    诊所管理软件
    MFC 画图CDC双缓冲
    Linux 启动、关闭、重启网络服务
    C# 除法的小数点问题
  • 原文地址:https://www.cnblogs.com/yunqing/p/4779207.html
Copyright © 2011-2022 走看看