对一个类进行定义对象有两种方法(  假如这个类名叫Test,对象名叫Object001  )
定义如下
(1)Test Object001=new Test();
(2)new test().Object001();
这两种方法有什么区别?

解决方案 »

  1.   

    我的书上明明是这么写的我真是无可奈何本着对JAVA的喜爱请高手给我答案好么谢谢.......
      

  2.   

    《JAVA程序设计基础》
    清华大学出版社,这个书是我们学校发的!
    编著:吴晓东程序具体是这样的!:::public class OverLoading{
    public static void main(String [] args){
    //============================================================     
        //OverLoading testOverLoading=new OverLoading();
        new OverLoading().testOverLoading();
    //============================================================
             }
    public void testOverLoading(){
    System.out.println("Default constructor:");
    new Tree();
    System.out.println("Another constructor:");
    for(int i=1;i<3;i++)
    {
    Tree t=new Tree(i*10);
    t.info();
    t.info("overloaded method");
    }
    }
    }
    class Tree{
    int height;
    Tree()
    {
    prt("Planting a seeding");
    height=0;
    }
    Tree(int i)
    {
    prt("Creating new Tree that is "+ i + " feet tall");
    height=i;
    }
    void info()
    {
    prt("Tree is "+height+" feet tall");
    }
    void info(String s)
    {
    prt(s+": Tree is "+height+" feet tall");
    }
    static void prt(String s)
    {
    System.out.println(s);
    }
    } 两个等号中间和这样的!
    你们看看,我把两种都写上去了两个方法都能编译通过!
    可是下面一种方法能够运行
    上面那种不能运行!
      

  3.   

    我做了个测试,原来如此:
    //:OverLoading1.javapublic class OverLoading1{
    public static void main(String [] args){
    //============================================================
    //下面的一行语句是生成一个OverLoading1对象testOverLoading,    
        OverLoading1 testOverLoading=new OverLoading1();
    //下面的一行语句是生成一个OverLoading1对象并调用其方法testOverLoading(),
    //和上面一行的testOverLoading意义不一样,这样只有这一行会有执行结果!
        new OverLoading1().testOverLoading();
    //============================================================
             }
    public void testOverLoading(){
    System.out.println("Default constructor:");
    new Tree();
    System.out.println("Another constructor:");
    for(int i=1;i<3;i++)
    {
    Tree t=new Tree(i*10);
    t.info();
    t.info("overloaded method");
    }
    }
    }
    class Tree{
    int height;
    Tree()
    {
    prt("Planting a seeding");
    height=0;
    }
    Tree(int i)
    {
    prt("Creating new Tree that is "+ i + " feet tall");
    height=i;
    }
    void info()
    {
    prt("Tree is "+height+" feet tall");
    }
    void info(String s)
    {
    prt(s+": Tree is "+height+" feet tall");
    }
    static void prt(String s)
    {
    System.out.println(s);
    }
    }
      

  4.   

    能否说的更加明白一些OverLoading testOverLoading=new OverLoading();//这句是创建OverLoading类的对象testOverLoading。new OverLoading().testOverLoading();//这句是创建OverLoading类的对象testOverLoading,并且调用testOverLoading的构造函数,是不是???
      

  5.   

    //下面的一行语句是生成一个OverLoading1对象并调用其方法testOverLoading(),
    //和上面一行的testOverLoading意义不一样,这样只有这一行会有执行结果!
        new OverLoading1().testOverLoading();//这一句是先创建一个匿名OverLoading对象,紧接着调用该对象的行为public void testOverLoading()
      

  6.   

    看来应该是这样的:
    class A
    {
       int a()
       {
          return 10;
       }
    }(new A()).a();就是生成一个对象,并调用其一个方法,加上括号就明白多了。
      

  7.   

    这是构造一个新对象,对象名称为"testOverLoading":
    OverLoading1 testOverLoading=new OverLoading1();这是构造一个没有名称的对象,并调用这个没有名称对象的testOverLoading方法:
    new OverLoading1().testOverLoading();这是两个不同的概念,虽然这里第一句的对象名称和此对象的一个方法同名,这字不过是一种巧合。
      

  8.   

    同意gavin1976(嘉文)的说法,UP!
      

  9.   

    public void testOverLoading是OverLoading testOverLoading=new OverLoading();的构造方法!
    这样我能理解
    ------------------------------------------------------------
    可是new OverLoading().testOverLoading();我不能理解
    上面的大哥说创建一个无名对象,然后无名对象调用testOverLoading()方法难道testOverLoading()方法(我认为是构造方法)能够如此用?
    在没有确定对象的名字的情况下,就能够拿出来用????
      

  10.   

    这种定义方法其实很简单,songyangaaron说得没错,这就像java中监听函数一样。
      

  11.   

    public void testOverLoading是OverLoading testOverLoading=new OverLoading();的构造方法!
    这样我能理解
    ------------------------------------------------------------
    可是new OverLoading().testOverLoading();我不能理解
    上面的大哥说创建一个无名对象,然后无名对象调用testOverLoading()方法
    难道testOverLoading()方法(我认为是构造方法)能够如此用?
    //在你给的源代码中testOverLoading()方法只是普通的方法,不是构造方法!!!
    //构造方法的命名应该和类名一样!!!而你的类名是OverLoading!!!
    在没有确定对象的名字的情况下,就能够拿出来用????