- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很抱歉问了这样一个基本问题,但我无法理解这个输出是如何生成的。如果有人有时间回答我的愚蠢问题,我们将不胜感激。提前致谢。
这是代码
public class EchoTestDrive {
public static void main(String[] args) {
Echo e1= new Echo();
Echo e2= new Echo();
int x=0;
while(x < 4) {
e1.hello();
e1.count=e1.count +1;
if(x==3) {
e2.count=e2.count+1;
}
if(x>0) {
e2.count=e2.count+e1.count;
}
x=x+1;
}
System.outprintln(e2.count);
}
}
class Echo {
int count =0;
void hello() {
System.outprintln("helloo...");
}
}
这给出了输出:
helloo...
helloo...
helloo...
helloo...
10
现在要得到 24 而不是 10,我们声明 Echo e2=e1;而不是 Echo e2=new Echo;我想知道这是如何生成这个特定输出的。对于 10,我可以从字面上将值放入每个值并得到答案但是当我使它们相等时会发生什么(我无法理解)。
最佳答案
当您使 e2 = e1
时,它使 e1 也指向同一个对象。
因此 e1
和 e2
都递增计数,计数递增两次。
当你执行 Echo e2 = new Echo()
和 Echo e1 = new Echo()
时,e1 和 e2 都指向两个不同的对象,因此递增 count
of e1 不会对 e2.count
产生任何影响。
编辑:
我将添加一张图片来解释相同的内容。
关于java - 很难理解引用类型的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10388455/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我有一个带有输入字段的表单,使用javascript,当用户输入超过2个字符时,它会在第一个输入字段下方创建相同的输入字段。其代码是: Optie 1: 1 && treated[this.na
这是我的: char userInput; int position; vector userVector(7); vector someVector(7,1); cin >> userInput;
尝试使用 typescript 和 redux 构建一个简单的 react crud 应用程序并遇到以下问题。我有一个具有指定签名的函数,它将一个人对象作为参数,如此处所示。 export defau
哦,我多么希望 TCP 像 UDP 一样基于数据包! [查看评论] 但是,唉,事实并非如此,所以我正在尝试实现我自己的数据包层。这是到目前为止的事件链(忽略写入数据包) 哦,我的数据包结构非常简单:两
我想在我的页面底部放置一个包含不同数量图片的栏,这些图片(如果比页面宽)可以左右滚动。 页面宽度在变化,我希望 Pane 的宽度为 100%。 我试图通过让中间的 div 溢出并使用 jquery.a
我曾尝试在工作时将我的 Rails 应用程序 bundle 到我的 Mac 上。在家里它运行良好,我之前已经设法自己解决了它,但这次无论我尝试什么似乎都无法解决它。 我在运行 bundle/bundl
所以我有一个旧的网络表单站点,并且正在努力使其更易于维护。把它扔掉并重写它不是一种选择。 IoC 显然是它首先得到的东西之一,但这给我留下了服务定位器模式和糟糕的品味,并且想知道它是否可以做得更好。
我是一名优秀的程序员,十分优秀!