声明一个类的对象是否必须需要对象名
for(int i=0;i<225;i++)
{
    this.add(new myPanel());
}
这里的新建的myPanel()对象的名称是什么
真的很不明白

解决方案 »

  1.   

    不需要啊
    例如 String s="abc";
    "abc"就是对象,没有名字。机器是通过地址来识别对象的,名字只是方便程序员识别的标识,不是必须的。
      

  2.   

    你所说的对象名理解为引用名可能更贴切,一般来说你new一个对象是为了使用它,那么给它一个引用名可以方便以后的使用,如:String s = new String("example");调用的时候就可以直接使用这个引用名了:s.length(); 
    在你的例子中:
    for(int i=0;i<225;i++)
    {
        this.add(new myPanel());
    }
    你只是在堆里new了一大堆myPanel的对象,但没有给他们一个引用名,所以你无法对他们进行其他任何操作。
      

  3.   

    在你的例子中:
    for(int i=0;i<225;i++)
    {
        this.add(new myPanel());
    }
    你只是在堆里new了一大堆myPanel的对象,但没有给他们一个引用名,所以你无法对他们进行其他任何操作。
    -----------------------------------------------------------------------------
    对不起,上面的说法不是很严密,如果你的this是一种container,你就可以用this的方法或下标来使用这些myPanel的对象。
      

  4.   

    new myPanel()只是为对象分配了存储空间,并调用相应的构造器。其目的是为对象初始化。
    如果不需要操作对象,这样声明没问题。如果构造器为空,这样做没有任何意义,只是浪费存储空间;如果构造器不为空,它分配存储空间的同时只执行构造器中的操作
      

  5.   

    你指的名字是什么?对象的访问是要靠引用的,也就是句柄。你的myPanel()方法是在内存中创建对象并返回句柄,你又把句柄放在了一个容器中。你要得到这个对象的引用可以用 this.get(i); 方法,你可以创建一个句柄,并把值赋给他,如myPanel mp=(myPanel)this.get(i);mp就是你所说的名字,其实就是句柄的值。
      

  6.   

    呵呵 get()函数在声明的时候,里面参数叫什么名字,那么这个对象就叫什么名字。
    比如你是  void  get(myPanel  m),那么对象的名字就是m
      

  7.   

    我要如何使用这些变量呢,用this的下标吗
    比如这个例子放在这个类中
    class myFrame extends Frame
    {
        for(int i=0;i<225;i++)
       {
           this.add(new myPanel());
       }
    }//在这个类中如何操作循环生成的myPanel()的某一个对象class myPanel extends Panel
    {
       Button b=new Button();
       public myPanel()
       {
          this.add(b);
       }
    }