对于面向对象问题有点懵,创建同一个类的两个对象,并声明类中的变量,输出值不同,修改变量值会改变

WhiteFoever 2019-03-19 03:16:01
public class num{int i;};
public class number{
public static void main(String[] args) {
num n1=new num();
num n2=new num();
n1.i=9;
n2.i=47;
System.out.println(n1.i+","+n2.i);
//输出为 9,47
n1=n2;
System.out.println(n1.i+","+n2.i);
//输出为47,47
n1.i=27;
System.out.println(n1.i+","+n2.i);
//输出为27,27
}
}

两个对象所声明的变量为什么会这样变化????
...全文
77 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
angrydoger 2019-03-20
  • 打赏
  • 举报
回复
你不明白的地方大概是这个位置吧n1=n2,相当于把n2栈中的地址赋给了n1,他们共用一个地址指向同一个对象,然后你改变了n1的值为27,所以n2也跟着改变啦,建议多理解下栈堆关系图。
cafebabei 2019-03-20
  • 打赏
  • 举报
回复
n1=n2之后n1和n2指向同一个对象啦 n1.i和n2.i始终是同一个对象的属性
stacksoverflow 2019-03-19
  • 打赏
  • 举报
回复
num n1=new num(); num n2=new num(); 假设n1指向地址&123 假设n2指向地址&456 n1.i=9; //&123地址的i为9 n2.i=47; //&456地址的i为47 //输出为 9,47 n1=n2; n1指向地址&456 n2指向地址&456 //输出为47,47 n1.i=27; 此时n1指向地址&456,所以修改地址&456的i为27 //输出为27,27
内容概要:本文研究了一种基于粒子群算法(PSO)与动态窗口法(DWA)相融合的无人机三维动态避障路径规划方法,旨在提升无人机在复杂、动态环境下的自主导航能力。通过将PSO的全局寻优能力与DWA的局部实时避障优势相结合,构建了一种高效的混合路径规划框架,并在Matlab平台上实现了仿真验证。该方法能够有效应对环境中移动障碍物的突发干扰,实现从起点到目标点的安全、平滑、最优路径生成,同时兼顾飞行效率与避障可靠性。研究涵盖了算法设计、模型构建、参数优化及三维空间仿真实验,展示了良好的应用前景。; 适合人群:具备一定MATLAB编程基础和路径规划背景知识的科研人员、自动化与无人机相关专业的研究生及工程技术人员。; 使用场景及目标:①应用于复杂城市环境、灾害救援、巡检等动态场景下的无人机自主飞行任务;②为智能无人系统提供高鲁棒性的三维避障解决方案;③作为智能优化算法与实时控制算法融合的研究案例,推动自主导航技术的发展; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注PSO与DWA的接口设计与参数协同机制,并可通过调整环境模型和算法参数进行二次实验,以掌握其在不同工况下的性能表现。

62,626

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧