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

    public class PassValue {

    /**
    * 值传递 基本数据类型参数
    * 值传递:方法调用时,实际参数吧他的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参数的值
    */
    static void exchage(int a,int b){//静态方法,交换a,b的值
    int temp;
    temp =a;
    a=b;
    b=temp;
    }


    public static void main(String[] args) {
    /**
    int i =10;
    int j =100;
    System.out.println("befeore call:"+"i="+i+" "+"j="+j);//调用前
    exchage(i, j);
    System.out.println("after call:"+"i="+i+" "+"j="+j);//
    //说明:调用exchange(i, j)时,实际参数i,j分别把值传递给相应的形式参数a,b,在执行方法exchange()时,
    //形式参数a,b的值的改变不影响实际参数i和j的值,i和j的值在调用前后并没改变。
    */


    //引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,
    //在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。
    Book b = new Book("java",32.22f);
    System.out.println("before call: ");
    b.output();

    /**
    *引用传递-对象作为参数
    *如果在方法中把对象(或者数组)作为参数,方法调用时,参数传递的是对象的引用(地址),即在方法调用时,实际参数把对对象的引用(地址)传递给形式参数。这是实际参数与形式参数
    *指向同一个地址,即同一个对象(数组),方法执行时,对形式参数的饿改变实际上就是对实际参数的改变,这个结果在调用结束后背保留了下来。
    */
    b.change(b,"php",25.6f);
    System.out.println("after call: ");
    b.output();
    //说明:调用change(b,"c++",25.6f)时,对象b作为实际参数,把引用传递给相应的形式参数a_book,
    //实际上a_book也指向同一个对象,即该对象有两个引用名:b和a_book。在执行方法change()时,对形式参数a_book操作就是对实际参数b的操作。
    }


    }


    class Book{
    String name;
    private float price;
    Book(String name ,float price){
    this.name=name;
    this.price=price;
    }

    static void change(Book a_book,String name, float price){
    a_book.name= name;
    a_book.price=price;
    }

    public void output(){
    System.out.println("name:"+name+" "+"price:"+price);
    }
    }

  • 相关阅读:
    利用.NET绘图技术制作水晶按钮控件(转)
    推荐几款皮肤界面工具
    同时避免GridView ArgumentNullException 值不能为空和使用Updatepanel乱码
    ASP.NET自动检测用户名是否注册(利用微软AJAX控件技术)
    ASP.NET的GridView在UpdatePanel里导出Excel的语句
    几款ASP.NET在线文本编辑器
    ASP.NET远程连接数据库SQL server
    ASP.NET一个页面多个Button按钮事件避免数据验证控件RequiredFieldValidator冲突方法
    使用面向oo对象方法的12个优点(转)
    C#中的DBNull、Null、""和String.Empty解释
  • 原文地址:https://www.cnblogs.com/wangruihua-521/p/3164854.html
Copyright © 2011-2022 走看看