Feezylu 2022-03-08 16:49 采纳率: 100%
浏览 56
已结题

请问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方法拿到那个新的对象并得到它的值,能拿到吗?能得话是通过什么方式拿到得?

  • 写回答

4条回答 默认 最新

  • CSDN专家-sinJack 2022-03-08 16:52
    关注

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

    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月16日
  • 已采纳回答 3月8日
  • 创建了问题 3月8日

悬赏问题

  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真