| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1227 人关注过本帖
标题:this的问题
只看楼主 加入收藏
qq181982453
Rank: 2
等 级:论坛游民
帖 子:45
专家分:16
注 册:2010-6-10
结帖率:22.22%
收藏
 问题点数:0 回复次数:11 
this的问题
class cy
{
      int x,y;
   cy(int a,int b)
{
      x=a;
      y=b;
}
    void output(int x,int y)
{
      x=x;
      y=y;
      System.out.println("x"+x);
      System.out.println("y"+y);
}
    void output()
{
      System.out.println(this.x);
      System.out.println(this.y);
}
    public static void main(String[] args)
{
      cy pt=new cy(5,5);
      pt.output(6,6);
      pt.output();
  }
}


我觉得输出是
x6
y6
6
6
啊,结果跟我想的不一样,希望有人指点下。
搜索更多相关主题的帖子: void public 
2010-11-09 16:20
幼儿园的
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2010-9-13
收藏
得分:0 
你想的是什么啊
2010-11-09 19:03
luocb1980
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-10
收藏
得分:0 
如果,
    public void output(int x, int y) {
        x = x;
        y = y;
        System.out.println("x" + x);
        System.out.println("y" + y);
    }
那你的code最后输出就会是:
x6
y6
5
5

如果你的code是:
    public void output(int x, int y) {
        x = this.x;
        y = this.y;
        System.out.println("x" + x);
        System.out.println("y" + y);
    }

那你的code最后输出就会是:
x5
y5
5
5

2010-11-10 15:26
雪影风
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-10-28
收藏
得分:0 
这就是用this 指针与不用的区别吗?
2010-11-10 22:39
luocb1980
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-10
收藏
得分:0 
应该是。
2010-11-11 12:27
tmaceye
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2010-10-18
收藏
得分:0 
回复 3楼 luocb1980
y=this.y;           this.y=y;
x=this.x;应该改为:  this.x=x;吧?!!!
y、x是参数,不能放在前面的 。

[ 本帖最后由 tmaceye 于 2010-11-11 12:37 编辑 ]
2010-11-11 12:35
aufish
Rank: 2
等 级:论坛游民
威 望:1
帖 子:59
专家分:94
注 册:2010-4-22
收藏
得分:0 
class cy
{
      int x,y;
   cy(int a,int b)
{
      x=a;
      y=b;
}
    void output(int x,int y)
{
      this.x=x;
      this.y=y;
      System.out.println("x"+x);
      System.out.println("y"+y);
}
    void output()
{
      System.out.println(this.x);
      System.out.println(this.y);
}
    public static void main(String[] args)
{
      cy pt=new cy(5,5);
      pt.output(6,6);
      pt.output();
  }
}
加了this.x是取对象中的x,如何不加的当参数出现与类中属性同名的情况,也就是你这种,x会取最近的那一个,并不会取远的x(属性那个)
就是参数变量x=x自已本身,豪无意义!
2010-11-13 01:22
liuchengbodp
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-11-13
收藏
得分:0 
this其实你用十进制输出就知,它是个地址而已。那个地址有啥,就引用啥。不加this的,就只用当前存在的。当前不存在,就找全局的,就这么简单。
2010-11-14 00:26
tx0521
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-11-14
收藏
得分:0 
这个是作用域的问题。
 void output(int x,int y)
{
      x=x;
      y=y;
      System.out.println("x"+x);
      System.out.println("y"+y);
}
其实 x=x; 可以看成是  自己=自己 ;并没有改变别人
建议多去了解一下 作用域

2010-11-14 22:38
刚钢
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-11-25
收藏
得分:0 
行参和成员变量同名了,把形参x,y改为a,b就行了
2010-11-25 16:32
快速回复:this的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046698 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved