黑马程序员技术交流社区

标题: 来猜程序结果,都对了就真的明白java是值传递还是引用传递 [打印本页]

作者: Foundmoon    时间: 2015-6-13 15:13
标题: 来猜程序结果,都对了就真的明白java是值传递还是引用传递
本帖最后由 Foundmoon 于 2015-6-13 15:40 编辑

赶快猜,一会公布答案和解释
class Person
{
        int age;
        Person(int age)
        {
                this.age=age;
        }
}----------------------------------------------------------------------------
public class Test1
{
        public static void main(String[] args)
        {
                Person p1=new Person(21);
                show(p1);
                System.out.println(p1.age);
        }
        static void show(Person p)
        {
                Person p3=new Person(28);
                p=p3;
        }
}
-----------------------------------------------------------------------------------------
public class Test2
{
        public static void main(String[] args)
        {
                Person p1=new Person(21);
                show(p1);
                System.out.println(p1.age);
        }
        static void show(Person p)
        {
                p.age=28;
        }
}-------------------------------------------------------------------------------------
public class Test3
{
        public static void main(String[] args)
        {
                Person p1=new Person(21);
                show(p1);
                System.out.println(p1.age);
        }
        static void show(Person p)
        {
                Person p3=new Person(28);
                p=p3;
                p.age=99;
        }
}




作者: Enhon1992    时间: 2015-6-13 17:44
Java没有引用传递这一说
作者: Foundmoon    时间: 2015-6-13 17:44
kikt 发表于 2015-6-13 16:53
1、21
p指向了新的引用,但没有改变原来引用的数值,所有main函数的p还是原引用
2、28

厉害:):):):)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2