JAVA基本数据类型和引用数据类型的参数传递详解

 

今天动力节点java培训机构小编为大家介绍 JAVA基本数据类型和引用数据类型的参数传递,希望通过此文大家能够熟悉JAVA基本数据类型和引用数据类型的参数传递,下面就随小编一起来了解一下JAVA基本数据类型和引用数据类型的参数传递。

 

timg (2).jpg

 

1、java基本数据类型的参数传值

 

  对于java基本数据类型,修改这个值并不会影响作为参数传进来的那个变量,因为修改的是方法的局部变量,是一个副本。实参的精度级别应等于或低于形参的精度级别,否则报错。

 

class JB{

    void f(int x, int y){

        x=x+1;

        y=y+1;

        System.out.printf("参数x和y的值分别是:%d, %d ", x, y);

    }

}

public class CS {

    public static void main(String[] arg){

        int x=10;

        int y=12;

        JB jb=new JB();

        jb.f(x, y);  

        System.out.printf("main方法中x和y的值分别是:%d, %d ", x, y);

    }

}

 

结果:

 

  参数x和y的值分别是:11, 13

 

  main方法中x和y的值分别是:10, 12

 

 

  2、java引用数据类型的参数传值

 

  java引用数据类型包括类、数组以及后面将要学习的接口。当形参是引用类型时,实参传给形参的值是对象的引用。如果修改形参引用的对象,那么实参引用的对象也会发生同样的变化。因为实参的引用拷贝给了形参,所以实参和形参引用同一个对象,对形参引用对象的修改就相当于对实参引用对象的修改。

 

  如果修改的不是形参引用的对象而是形参值本身,也就是让形参指向其它对象,则实参值和实参引用的对象都不改变。

 

class A{

    int N;

    A(int n){

        N = n;

    }

    void setN(int n){

        N = n;

    }

    int getN(){

        return N;

    }

}

class A2 extends A{

 

    A2(int n) {

        super(n);

    }

}

class B{

    void f(A a){

        a.setN(12);

//        a = new A2(111);

        System.out.println("在执行方法f时, 形参a修改了自己的N值");

        System.out.println("当前形参mouse的N值: " + a.getN());

    }

}

 

main

 

 

B b = new B();

        A a = new A(2);

        System.out.println("在调用方法f之前,实参a的N值: "+ a.getN());

        b.f(a);

        System.out.println("在调用方法f之后, 实参a的N值: " + a.getN());

 

 

  结果:

 

  在调用方法f之前,实参a的N值: 2

 

  在执行方法f时, 形参a修改了自己的N值

 

  当前形参a的N值: 12

 

  在调用方法f之后, 实参a的N值: 12

 

 

  注意:形参指向其它对象这句话的理解,a = new A2(111);让mouse又指向了另一个对象,所以他所修改后的值和实参没有关系,实参的值和引用都不会改变。在代码中新加入的A2就是继承了A,通过方法传入的是A(a)的对象的引用,把a = new A2(111);那么之后改变是A2的内容,和A就无关了,所以A(实参)的引用对象和值都不变。

 

  结果:

 

  在执行方法f时, 形参a修改了自己的N值

 

  当前形参a的N值: 111

 

  在调用方法f之后, 实参a的N值: 2

 

timg (12).jpg

 

以上就是动力节点java培训机构小编为大家介绍的“JAVA基本数据类型和引用数据类型的参数传递”的内容,希望对大家有帮助,更多java最新资讯请继续关注动力节点java培训机构官网,每天会有精彩内容分享与你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值