本帖最后由 xiaoxin504 于 2014-11-23 16:35:17 编辑

解决方案 »

  1.   

    同样的new 出一个坦克 ,为什么会报错呢,编译器无法通过。、
    但只要我把   “this” 去掉,就能通过,所以应该是语法问题。
    这个语法有什么问题谁知道吗?
      

  2.   

    this指针是一个隐含的指针,它是指向对象本身的,代表了对象的地址.Tank myTank = new Tank(50,50,this); 这行代码是定义了TankClient这个类的属性,这个时候this指针指向的是TankClient这个类的当前对象位置,接下来你定义了一个成员函数,这个成员函数的作用是给当前类的对象添加对键盘事件的监听,需要注意在keyPressed(KeyEvent e)这个方法中,当前对象变成了键盘相应的事件对象,这个时候,在这个方法中使用this指针,并不是获取当前TankClient对象的实际地址,而是键盘响应事件的实际地址。可以用eclipse跟踪下看看。