新人请教贴,关于this.x=x和x=x的问题
时间:2011-10-20
来源:互联网
主程序代码如下
class Foo
{
private int x;
public Foo(int x){this.x=x; }
public void.setX(int x){ this.x=x; }
public int getX(){ return x; }
}
public class T{
static Foo fooBar(Foo foo){
foo.setX(100);
return foo;
}
public static void main(String []args){
Foo foo=new Foo(300);
System.out.print(foo.getX()+"-");
Foo fooFoo= fooBar(foo);
System.out.print(foo.getX()+"-");
System.out.print(fooFoo.get()+"-");
foo=fooBar(fooFoo);
System.out.print(foo.getX()+"-");
System.out.print(fooFoo.getX());
}
}
输出结果是“300-100-100-100”,这个我能理解,但为什么将this.x=x换成x=x,就会变成“0-100-100-100”
将X=X不只是一个初始化X的初值么?怎么不能在第一次输出时付值300呢? 希望各位前辈赐教。谢谢!
class Foo
{
private int x;
public Foo(int x){this.x=x; }
public void.setX(int x){ this.x=x; }
public int getX(){ return x; }
}
public class T{
static Foo fooBar(Foo foo){
foo.setX(100);
return foo;
}
public static void main(String []args){
Foo foo=new Foo(300);
System.out.print(foo.getX()+"-");
Foo fooFoo= fooBar(foo);
System.out.print(foo.getX()+"-");
System.out.print(fooFoo.get()+"-");
foo=fooBar(fooFoo);
System.out.print(foo.getX()+"-");
System.out.print(fooFoo.getX());
}
}
输出结果是“300-100-100-100”,这个我能理解,但为什么将this.x=x换成x=x,就会变成“0-100-100-100”
将X=X不只是一个初始化X的初值么?怎么不能在第一次输出时付值300呢? 希望各位前辈赐教。谢谢!
作者: sq1949 发布时间: 2011-10-20
x=x那是传入参数的拷贝=传入参数的值,没有赋值给成员x,那么默认int类型的成员初始化值为0。所以如果你只改了构造函数的话,那么是0-100-100-100-100,如果两个都改了,那么是0-0-0-0-0.
作者: still_rain 发布时间: 2011-10-20
引用 1 楼 still_rain 的回复:
x=x那是传入参数的拷贝=传入参数的值,没有赋值给成员x,那么默认int类型的成员初始化值为0。所以如果你只改了构造函数的话,那么是0-100-100-100-100,如果两个都改了,那么是0-0-0-0-0.
x=x那是传入参数的拷贝=传入参数的值,没有赋值给成员x,那么默认int类型的成员初始化值为0。所以如果你只改了构造函数的话,那么是0-100-100-100-100,如果两个都改了,那么是0-0-0-0-0.
方法的形参名和类属性名相同的话,不用this.区分,会默认是形参,你把
public Foo(int x){this.x=x; }改成
public Foo(int y){x=y; }输出结果是“300-100-100-100”
作者: qxq198407 发布时间: 2011-10-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28