A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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;
        }
}



2 个回复

倒序浏览
Java没有引用传递这一说
回复 使用道具 举报
kikt 发表于 2015-6-13 16:53
1、21
p指向了新的引用,但没有改变原来引用的数值,所有main函数的p还是原引用
2、28

厉害:):):):)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马