1.   new Cen().new ButtonHandler()
  
是不是Cen类的对象.ButtonHandler类的对象??
2.  new Cen.ButtonHandler()是不是  生成一个 Cen.ButtonHandler()的对象.
还是 Cen类对象的ButtonHandler();
??

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【sure2003】截止到2008-07-15 22:51:38的历史汇总数据(不包括此帖):
    发帖的总数量:242                      发帖的总分数:10263                    每贴平均分数:42                       
    回帖的总数量:208                      得分贴总数量:6                        回帖的得分率:2%                       
    结贴的总数量:240                      结贴的总分数:10203                    
    无满意结贴数:2                        无满意结贴分:50                       
    未结的帖子数:2                        未结的总分数:60                       
    结贴的百分比:99.17 %               结分的百分比:99.42 %                  
    无满意结贴率:0.83  %               无满意结分率:0.49  %                  
    值得尊敬
      

  2.   

    new Cen.ButtonHandler() 可以理解为 Cen.ButtonHandler abc = new Cen.ButtonHandler() 
    所以理解为构造一个 Cen.ButtonHandler对象
      

  3.   

    运算符才有优先级。
    new 和 "." 不是运算符你那是在声明内部类的对象。
      

  4.   

    1.  new Cen().new ButtonHandler() 没见过这种语法
    2.   "."在这里只是起限定作用,因为是创建这个类的内部类的对象,所以new 操作的目标是内部类。感觉不需要跟优先级扯上什么关系。
      

  5.   

    总有先有后的
    new 和 delete 在C++里就有优先级的....
      

  6.   

    new Cen().new ButtonHandler() 在允许执行的情况下得到的是ButtonHandler的对象。
      

  7.   

    public class Test {    public static void main(String[] args) {
            new Test().test();
        }    public void test() {
            Test1.Test2 t1=new Test1().new Test2();
          //  Test1.Test2 t2=new Test1.Test2();
        }
    }class Test1 {    class Test2 {        public void test2() {
                System.out.println("Test2:test2");
            }
        }    public void test1() {
            System.out.println("Test1:test1");
        }
    }看看这个简单的例子,分析一下它的指令就能看的出来:Compiled from "Test.java"
    public class Test extends java.lang.Object{
    public Test();
      Code:
       0: aload_0
       1: invokespecial #1; //Method java/lang/Object."<init>":()V
       4: returnpublic static void main(java.lang.String[]);
      Code:
       0: new #2; //class Test
       3: dup
       4: invokespecial #3; //Method "<init>":()V
       7: invokevirtual #4; //Method test:()V
       10: returnpublic void test();
      Code:
       0: new #5; //class Test1$Test2
       3: dup
       4: new #6; //class Test1
       7: dup
       8: invokespecial #7; //Method Test1."<init>":()V
       11: dup
       12: invokevirtual #8; //Method java/lang/Object.getClass:()Ljava/lang/Class;
       15: pop
       16: invokespecial #9; //Method Test1$Test2."<init>":(LTest1;)V
       19: astore_1
       20: return}看第标号8:-16:
    先构造Test1类的对象,然后构造Test1.Test2类的对象.
    不知道lz想得到什么信息.
      

  8.   

    其实这些东西基本没什么意义.
    如果自己好奇,可以参考<深入java虚拟机>,不明白的地方就对class文件进行反编译,得到其虚拟机指令集来分析其实质.
      

  9.   

     难道没有知道这个new Cen().new ButtonHandler() 是怎么先后结合次序的吗?????
        
      

  10.   


    class Test
    {
    public static void main(String args[])
    {
    Button c = new Button( );
    c.addActionListener(new Cen( ).new ButtonHandler( ));
    }}class Cen
    {
    Cen()
    {
    System.out.println("Cen");
    }
    class ButtonHandler implements ActionListener 
    {
    ButtonHandler()
    {
    System.out.println("ButtonHandler");
    }
    public void actionPerformed(ActionEvent e)
    { }
    }
    }
    //楼主要的是这个意思吧    已加了构造函数  看看输出结果
      

  11.   


    class Test
    {
    public static void main(String args[])
    {
    Button c = new Button( );
    c.addActionListener(new Cen.ButtonHandler( ));
    }
    }class Cen
    {
    Cen()
    {
    System.out.println("Cen");
    }
    static class ButtonHandler implements ActionListener 
    {
    ButtonHandler()
    {
    System.out.println("ButtonHandler");
    }
    public void actionPerformed(ActionEvent e)
    { }
    }
    }//再运行下这个  这次ButtonHandler 是静态内部类
      

  12.   

    难道没有知道这个new Cen().new ButtonHandler() 是怎么先后结合次序的吗????? 请大哥直接回答我这个问题好吗??
    老竹...大侠等
      

  13.   

    new Cen().new ButtonHandler() 主要看结合次序。
    是从左到右还是从右到左。
    .是用来发送消息的。比如 类.方法
    一个类向一个方法发送消息,要它执行特定的任务
      

  14.   

    先new Cen() 再new的ButtonHandler