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

    java传递参数采用传值方式

    传值方式具体为:将参数的值复制一份,方法里面用复件,方法外用原件,方法中可以改变复件,不影响原件

    根据参数类型分为两种不同情况:基本数据类型和对象数据类型

     1 package com.jdk7.chapter2;
     2 
     3 /**
     4  * java参数传递采用的传值方式
     5  * 传值:将参数的值复制一份,方法里面用复件,方法外用原件,方法中可以改变复件,不影响原件
     6  * @author celineluo
     7  *
     8  */
     9 public class PassParamter {
    10     public PassParamter(){}
    11     
    12     /**
    13      * 对象类型的传值策略是:参数的引用复制一份传给方法,复件引用和原件引用指向同一个对象,方法可以改变参数引用的复件,
    14      * 但是不会影响原件引用,即复件引用还可以指向一个新的对象
    15      */
    16     
    17     /**
    18      * 调用ComplexNumber类自定义构造函数声明对象实例
    19      * @param comn
    20      */
    21     public void methodA(ComplexNumber comn){
    22         comn = new ComplexNumber(1,2);        //这个复件引用指向了一个新的对象
    23         System.out.println(comn.toString());
    24     }
    25     
    26     /**
    27      * 调用ComplexNumber类中实例变量Setter方法设置数值
    28      * @param comn
    29      */
    30     public void methodB(ComplexNumber comn){
    31         comn.setRealPart(1);                //这个复件引用和原件引用指向同一个对象,即改变复件引用的值,原件引用的值同步改变
    32         System.out.println(comn.toString());
    33         comn.setRealPart(2);
    34         System.out.println(comn.toString());
    35     }
    36     
    37     /**
    38      * 基本数据类型传值的策略是:将参数值复制一份传给方法,方法可以改变复件,但不影响原件
    39      * @param n
    40      */
    41     public void methodC(int n){
    42         n++;
    43         System.out.println("n = "+n);
    44     }
    45     
    46     public static void main(String[] args) {
    47         PassParamter test = new PassParamter();
    48         ComplexNumber a = new ComplexNumber(5,6);
    49         System.out.println("调用methodA参数传递之前: "+a.toString());
    50         test.methodA(a);
    51         System.out.println("调用methodA参数传递之后: "+a.toString());
    52         System.out.println("调用methodB参数传递之前: "+a.toString());
    53         test.methodB(a);
    54         System.out.println("调用methodB参数传递之后: "+a.toString());
    55         int b = 0;
    56         System.out.println("调用methodC参数传递之前: "+b);
    57         test.methodC(b);
    58         System.out.println("调用methodC参数传递之后: "+b);
    59         
    60     }
    61 
    62 }
    执行结果:

    调用methodA参数传递之前: realPart=5.0, imagePart=6.0i
    realPart=1.0, imagePart=2.0i
    调用methodA参数传递之后: realPart=5.0, imagePart=6.0i
    调用methodB参数传递之前: realPart=5.0, imagePart=6.0i
    realPart=1.0, imagePart=6.0i
    realPart=2.0, imagePart=6.0i
    调用methodB参数传递之后: realPart=2.0, imagePart=6.0i
    调用methodC参数传递之前: 0
    n = 1
    调用methodC参数传递之后: 0

  • 相关阅读:
    java第四次作业
    JAVA第三次作业
    Java第二次作业
    Java第一次作业
    android studio下载
    Android面试常问到的知识点
    [Java基础]List,Map集合总结
    搞ACM的你伤不起[转自RoBa]------(看一次,笑一次)
    06.5.1.Functions
    05.virsh命令的常用操作(kvm)
  • 原文地址:https://www.cnblogs.com/celine/p/8243892.html
Copyright © 2011-2022 走看看