类----JAVA的传值方式

class User {
    private int user_id;
    private String user_name;
    private int user_age;

    public User(int user_id, String user_name, int user_age) {
        this.user_id = user_id;
        this.user_name = user_name;
        this.user_age = user_age;
    }

    public User() {

    }

    public int getUser_id() {
        return user_id;
    }

    public void setUser_id(int user_id) {
        this.user_id = user_id;
    }

    public String getUser_name() {
        return user_name;
    }

    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }

    public int getUser_age() {
        return user_age;
    }

    public void setUser_age(int user_age) {
        this.user_age = user_age;
    }
}

public class ClassReferenceTest {
    public static void swap_obj(User x, User y){
        User tmp_user = new User();
        //引用的拷贝
        tmp_user = x;
        x = y;
        y = tmp_user;
    }

    public static void real_swap_obj(User x, User y){
        User tmp_user = new User();

        tmp_user.setUser_id(x.getUser_id());
        tmp_user.setUser_name(x.getUser_name());
        tmp_user.setUser_age(x.getUser_age());

        x.setUser_id(y.getUser_id());
        x.setUser_name(y.getUser_name());
        x.setUser_age(y.getUser_age());

        y.setUser_id(tmp_user.getUser_id());
        y.setUser_name(tmp_user.getUser_name());
        y.setUser_age(tmp_user.getUser_age());

    }

    public static void main(String[] args) {
        User a = new User(1,"张三",25);
        User b = new User(2,"李四",24);
        swap_obj(a,b);
        System.out.println(a.getUser_name());
        real_swap_obj(a,b);
        System.out.println(a.getUser_name());
    }
}

Output: 

张三
李四

posted @ 2014-02-24 10:53  小菜喵  阅读(1364)  评论(0编辑  收藏  举报