首页 > 其他 > 详细

ReferenceTypeDemo

时间:2015-07-23 00:10:08      阅读:247      评论:0      收藏:0      [点我收藏+]

对象a作为参数argument在方法中使用时,如果argument在方法中赋予另一个对象的地址,则之后方法中对参数argument的操作,都不会影响到对象a.

方法中参数argument如果是对象,argument是源对象a的副本

/*2015-7-22*/
public class ReferenceTypeDemo {
    public static void main(String[] args) {
        Person tom = new Person("Tom", 20);
        System.out.println(tom);
        modify(tom);
        System.out.println(tom);
    }

    private static void modify(Person tom) {
        System.out.println("modify():" + tom);
        Person jack = new Person("Jack", 10);
        tom = jack;
        System.out.println(tom);
        System.out.println("modify():" + tom);
        tom.setName("Tom-modify");
        System.out.println("modify():" + tom);
    }

}

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return Integer.toHexString(hashCode()) + ";Person [name=" + name + ", age=" + age + "]";
    }
}

Output:

14318bb;Person [name=Tom, age=20]
modify():14318bb;Person [name=Tom, age=20]
ca0b6;Person [name=Jack, age=10]
modify():ca0b6;Person [name=Jack, age=10]
modify():ca0b6;Person [name=Tom-modify, age=10]
14318bb;Person [name=Tom, age=20]

 Tips:
hasCode()可以标识对象。Map中判断是否包含一个对象,就是使用hashCode()和Equals()来判断

ReferenceTypeDemo

原文:http://www.cnblogs.com/softidea/p/4668939.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!