请问java中一个类中两个方法都new了另一个类的对象,两个方法之间的对象还能通过什么办法相互调用么?

public class StudyList {
public static void main(String[] args) {
C c1 = new C();
c1.i = 1;
change(c1);
System.out.println(c1.i);
}

private static void change(C c) {
    c.i = 2;
    c = new C();
    c.i = 3;
}

}

class C {
int i;
}

比如这个程序运行后得到的c1.i的结果是2,因为change方法中new的新对象是个新的地址值,没有交给main方法。
那如果我想通过main方法拿到那个新的对象并得到它的值,能拿到吗?能得话是通过什么方式拿到得?

可以啊。你将这个对象返回就行了。

public class StudyList {
  public static void main(String[] args){
            C c1 = new C();
            c1.i = 1;
            C c2=change(c1);
            System.out.println(c1.i);
            System.out.println(c2.i);
        }

        private static C change(C c) {
            c.i = 2;
            c = new C();
            c.i = 3;
            return c;
        }
    }

    class C {
        int i;
    }

img

change方法加个返回值。返回新对象就行了呀

类间传值/方法间传值,大概也就那么几种办法
1.函数返回值
2.函数的参数加out关键字,将参数向外传递
3.声明一个全局变量,两个函数都去操作同一个变量

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632