在很多类的方法中都用到this这个关键字,我看了课本,“在JAVA中,如果在类的成员方法中访问类的成员变量,可以使用关键字this指明要操作的对象”可是我看了还是不理解他说的什么意思,谁呢帮我解释下this的用法吗?谢谢!

解决方案 »

  1.   

    一般在类本身中用到它,指类本身!重要是为了区别其它跟它相同的名,或作用域
    例:
    class Ctt()
    {
     private:
       int m_iCou;
     public:
       int GetCount(){ return this->m_iCou; }
    }
    这里也可不加this
      

  2.   

    就是比如你有个类的成员变量是:
    int i;
    还有个方法叫
    public void set(int i){
    this.i=i;
    }
    这时候就要用this.i。否则就搞不清楚i指的是参数i,还是成员变量i
      

  3.   

    this是指该类中非静态的成员变量,方法等
      

  4.   

    像2楼说的在那个方法中用了this.i就说明这个i指的是参数的i了吗?
    public class MyCanvas  implements KeyListener,MouseListener{
        Canvas c;
        String s="";
        TextField t;
        public static void main(String args[]){  
            Frame f=new Frame("Canvas");
            MyCanvas mc=new MyCanvas();
            mc.c=new Canvas();
            mc.t=new TextField();
            f.add(mc.t, "South");
            f.add(mc.c, "Center");
            f.setSize(300,150);
            mc.c.addMouseListener(mc);
            mc.c.addKeyListener(mc);
            f.setVisible(true);
        }
    }
    这里的addMouseListener(mc);和addKeyListener(mc);假如把mc改this有什么结果呢?还有就是像main()方法这样的静态方法里面不能有非静态的成员变量吗?比如mc.c.addMouseListener(mc);就不能改c.addMouseListener(mc);是不?这我不明白
      

  5.   

    this是当前对象的引用,你说的情况不能把mc改成this
    因为main是静态方法,里面不能用this。你第二个问题也是类似的。
    没有搞清楚static的概念。
    建议再去好好看看书