A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. class test {                                           //class开始
  2.          jPanel2 = new JPanel (){
  3.                protected void paintComponent(Graphics g){
  4.                //代码
  5.                }
  6.           };
  7. componet.addMouseListener(new MouseAdapter() {
  8.     public void mouseReleased(MouseEvent me) {
  9.            // 这里写你想做的事情
  10.      }
  11.     });
复制代码

6 个回复

倒序浏览
这个好像叫类重写?也是我很模糊的一个概念,希望高手来解答一下。和LZ一起等
回复 使用道具 举报
本帖最后由 魏-玉-彪 于 2013-11-1 16:14 编辑
  1. class test {                                          
  2.         jPanel2 = new JPanel (){  //这里是声明并创建 Jpanel 匿名类对象
  3.                protected void paintComponent(Graphics g){
  4.                //代码
  5.                }
  6.           };// 注意这里的分号不能省略


  7. componet.addMouseListener(new MouseAdapter()) {  //这里的意思是 componet对象调用鼠标监听器方法
  8.                                 //而调用这个方法需要一个参数(小括号内)M (鼠标适配器对象)
  9.                                 //而为了简写就直接创建了没有名字的匿名对象,就是
  10.                                 //new MouseAdapter() 这时是指创建匿名类对象
  11.     public void mouseReleased(MouseEvent me) {
  12.            // 这里写你想做的事情
  13.      }
  14.     }

  15. 上面的代码等价于

  16. MouseAdapter m= new MouseAdapter();

  17. componet.addMouseListener(m) {   
  18.     public void mouseReleased(MouseEvent me) {
  19.            // 这里写你想做的事情
  20.      }
  21.     }

  22. }
复制代码
建议你再复习一下面向对象的思想概念

评分

参与人数 1技术分 +1 收起 理由
To + 1 很给力!

查看全部评分

回复 使用道具 举报
匿名内部类
回复 使用道具 举报
{ } 相当于为那个类写一个子类,如果是接口就是为这个接口写一个实现
然后 new 这个子类/实现对象
回复 使用道具 举报
这是一个匿名的 内部类。    一般匿名的内部类都会实现一个借口或者继承一个父类。  当我们new 的时候 直接new其借口或者父类 即可。
这里我们假设MouseAdapter是一个借口 那么
下面的方法“mouseReleased()”   是其借口的抽象方法。 所以我们必须实现它

评分

参与人数 1技术分 +1 收起 理由
To + 1 赞一个!

查看全部评分

回复 使用道具 举报
hel 中级黑马 2013-11-1 21:58:30
7#
匿名内部类也就是没有名字的内部类

正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写

但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马