泌尿生殖系彩超查女:Java中的实参与形参

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 17:27:34
    Java中形参的传递方式只有一种,那就是值传递(包括数据值与地址值两种,数据值是数据的副本,地址值类似指针),不管参数的类型是基本类型还是类类型。
  1)当参数类型是基本类型时,形参获取实参一个副本并传递给方法(修改副本并不影响原本本身)。如下程序所示:
     public static void changeInt(int a){
       a=100;
     }
      public static void main(String[] args){
       int a=10;
       changeInt(a);
       System.out.println(a);
     }
  输出结果当然是10。
  2)当参数类型是类类型时,形参获取实参地址(实参实际上就是存储的地址,也就是说它的值就是地址)的一个副本并传递给方法,如下程序所示:
    public static void main(String[] args){
           Name n=new Name("zhenxing","sun");
           changeName(n);
           System.out.println(n);
   }
   public static void changeName(Name n){
           n=new Name("yuanyuan","sun");
   }
  
   Name类的定义
   class Name {
       public String firstName;
       public String lastName;
            public Name(String firstName,String lastName){
           this.firstName=firstName;
           this.lastName=lastName;
        }
  
       public String toString(){
           return firstName+"-"+lastName;
       }
   }
  程序的输出是zhenxing-sun,下图分析了程序的执行过程。


  由图中可以看到虽然changeName方法中的n变量指向了新的Name实例,但是main方法中的n变量指向的对象并没有改变,所以最终的输出时zhenxing-sun。