总结2
GUI中的消息传递机制
1.set ,get方法
2.持有对方的引用
3.定义static
4.内部类,匿名类
面向对象的思想:
子弹是一个类,墙是一个类,坦克是一个类,爆炸是一个类,血块是一个类。
子弹撞到墙,子弹消失,这是子弹的事情,可以写在子弹类里。
子弹撞到坦克,子弹和坦克都消失,产生一个爆炸,这也是子弹的事情,可以写在子弹类里。
坦克撞到坦克,互相弹开,是坦克的事情,写坦克类里。
坦克撞到血块,坦克生命值增加,是坦克的事情,写坦克类里。
谁发出了动作,就写谁那里。。。类的组成(属性和方法)
开始写一个类的时候,可以按如下顺序考虑:
1.这个类有哪些属性。
2.需要这个类做什么
3.不需要一次性全部考虑到,循环考虑,需要的时候慢慢添加。
修改某个类时,如果牵扯到其他类的东西较多,则设计的不太合理(封装性)
双缓冲解决闪屏问题
原因:
* 刷新重画频率过快,paint方法还没有完成
* 逐条显示
解决方法:
将所有东西画在虚拟图片上,一次性显示出来
repaint()方法是先调用 update(Graphics g)方法再调用paint(Graphics g)