栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第八节 Java中方法的参数传递

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第八节 Java中方法的参数传递

面试题:Java中方法的参数传递是值传递还是引用传递?

答案:值传递。

值传递:形式参数改变不会影响实际参数;

引用传递:形式传递改变会影响实际参数。

注意:Java中方法的参数传递,只有值传递,对于引用传递来说,地址值是不会改变的,但是可以改变对象的内容。

一、值传递

import java.util.Arrays;

public class Demo01 {
    String name = "攀哥";
    String[] chs = {"吃","喝","拉"};

    public static void change(String name,String[] chs){
        name = "静静";
        chs[0] = "吃火锅";
    }

    public static void main(String[] args) {
        Demo01 aa= new Demo01();
        change(aa.name,aa.chs);
        System.out.println(aa.name+"and"+ Arrays.toString(aa.chs));
        //输出攀哥and[吃火锅, 喝, 拉]
    }
}

二·、引用传递

对于基本数据类型和 String 类型来说:传递的值是具体的值;

对于引用数据类型来说:传递的值是地址值。

注意:Java中方法的参数传递,只有值传递,对于引用数据类型来说,地址值是不会改变的,但是可以改变对象中的内容。

public class Demo02 {
    public static void changeNum(int num){
        num = 6;
    }

    public static int changeNum1(int num){
        num = 6;
        return num;
    }

    public static void changePeo(Person person){
        System.out.println("前:"+person);
        person = new Person();
        System.out.println("后:"+person);
        person.say = "我想吃火锅了";
    }

    public static void main(String[] args) {
        int num = 2;
        changeNum(num);
        System.out.println("修改前:"+num);
        num = changeNum1(num);
        System.out.println("修改后:"+num);

        Person person = new Person();
        System.out.println("修改前person的地址:"+person);
        changePeo(person);
        System.out.println("修改后person的地址:"+person);
        System.out.println(person.say);
    }
}
class Person{
    String say = "有点饿,想吃鱼了!!!";
}

运行结果:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/602829.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号