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

  • 相关阅读:
    数据库字段太多,批量快速建立实体类方法(适合大量字段建立实体类)
    SQL service 中的 ”输入SQL命令窗口“ 打开了 “属性界面” 回到 ”输入SQL命令窗口“
    计算机软件编程英语词汇集锦
    编程常用英语词汇
    svn上传和下载项目
    当启动tomcat时出现tomcat setting should be set in tomcat preference page
    Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor
    eclipse中选中一个单词 其他相同的也被选中 怎么设置
    Spring Boot的@SpringBootApplication无法引入的问题
    最全的SpringCloud视频教程
  • 原文地址:https://www.cnblogs.com/celine/p/8243892.html
Copyright © 2011-2022 走看看