- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我的问题是对象 A
是否有一个属性,例如 int var;
并且对象 B
是否有一个属性 int var2
这两个对象都是使用相同的构造函数从同一个类实例化的。为了便于说明,我们假设 var=3
和 var2=0
分配对象 A=B
是否会使 A.var==0
?请为我激发你的回答。
这里有更多代码,以防您需要更多代码:
public class CarSize{
public CarSize(int x)
{
this.var=x;
}
public void call()
{
doubleVar(this);
}
private void doubleVar(CarSize cz)
{
int vara= cz.getVar()*2;
CarSize c= new CarSize(vara);
cz=c;
}
public int getVar(){return this.var;}
private int var;
public static void main(String args[])
{
CarSize cz = new CarSize(3);
cz.call();
System.out.println(cz.getVar());
}
}
公告
在尝试向我解释我已经知道的内容之前,请检查代码,非常感谢您的理解。
最佳答案
您的代码无法按预期工作的问题在于这段简短的代码:
cz=c;
自 CarSize
是引用类型,变量为CarSize
将“指针”存储到 CarSize
对象,而不是 CarSize
对象本身。
当您传递汽车尺寸作为参数时,您正在传递一个“指针”。 cz=c
使指针存储在cz
中指向与 c
中存储的相同对象.
现在让我们看看如何调用此方法:
doubleVar(this);
this
指cz
这是在 main 方法中声明的。再次,this
指向汽车大小的对象。在 doubleVar
方法中,您使参数指向另一个对象,但您仅使参数指向其他对象。 this
永远不会改变,它的字段也不会改变。
这就是为什么您看不到值(value)翻倍的原因。
要解决此问题,请不要为参数分配新值。相反,更改 this
直接地。删除该参数,因为不需要。
private void doubleVar()
{
this.var *= 2; // you can actually omit "this.", I put it there just to make it clear for you
}
关于java - 面向对象/JAVA : Does assinging an object to another changes its attributes(class variables) too?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45109824/
我是 TypeScript 的新手,我想传递我的函数 onDogSelected到子组件 . 当我尝试时,我收到了这样的错误消息: Type '{ onDogSelected: (e: any) =
我正在使用jquery ajax并且ajax响应是多维json数组,我将JSON值分配给坐标数组,然后将坐标数组分配给新的JSONcoord_set,将所有值分配给coord_set后,它将最后一个数
根据AWS官方documentation ,IAM 角色也可以附加到 IAM 用户,而不仅仅是服务。 将 IAM 角色分配给 IAM 用户的有效用例是什么? 直接向用户授予(允许/拒绝)IAM 策略是
所以我的问题是对象 A 是否有一个属性,例如 int var; 并且对象 B 是否有一个属性 int var2 这两个对象都是使用相同的构造函数从同一个类实例化的。为了便于说明,我们假设 var=3
我是一名优秀的程序员,十分优秀!