关于对象的一个基础问题,我很糊涂 声明一个类的对象是否必须需要对象名for(int i=0;i<225;i++){ this.add(new myPanel());}这里的新建的myPanel()对象的名称是什么真的很不明白 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不需要啊例如 String s="abc";"abc"就是对象,没有名字。机器是通过地址来识别对象的,名字只是方便程序员识别的标识,不是必须的。 你所说的对象名理解为引用名可能更贴切,一般来说你new一个对象是为了使用它,那么给它一个引用名可以方便以后的使用,如:String s = new String("example");调用的时候就可以直接使用这个引用名了:s.length(); 在你的例子中:for(int i=0;i<225;i++){ this.add(new myPanel());}你只是在堆里new了一大堆myPanel的对象,但没有给他们一个引用名,所以你无法对他们进行其他任何操作。 在你的例子中:for(int i=0;i<225;i++){ this.add(new myPanel());}你只是在堆里new了一大堆myPanel的对象,但没有给他们一个引用名,所以你无法对他们进行其他任何操作。-----------------------------------------------------------------------------对不起,上面的说法不是很严密,如果你的this是一种container,你就可以用this的方法或下标来使用这些myPanel的对象。 new myPanel()只是为对象分配了存储空间,并调用相应的构造器。其目的是为对象初始化。如果不需要操作对象,这样声明没问题。如果构造器为空,这样做没有任何意义,只是浪费存储空间;如果构造器不为空,它分配存储空间的同时只执行构造器中的操作 你指的名字是什么?对象的访问是要靠引用的,也就是句柄。你的myPanel()方法是在内存中创建对象并返回句柄,你又把句柄放在了一个容器中。你要得到这个对象的引用可以用 this.get(i); 方法,你可以创建一个句柄,并把值赋给他,如myPanel mp=(myPanel)this.get(i);mp就是你所说的名字,其实就是句柄的值。 呵呵 get()函数在声明的时候,里面参数叫什么名字,那么这个对象就叫什么名字。比如你是 void get(myPanel m),那么对象的名字就是m 我要如何使用这些变量呢,用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); }} 新手代码问题,关于用户名和密码判断正确否 byte和char的getbytes问题请教高手 jsp生成动态树 孙鑫的视频和think in java应该先看哪个? 为什么等于11??感谢 怎么捕获ctr+n这种系统的快捷键并拦截它? JAVA能不能在本地打印? IO中有没有得到一个文件总行数的方法? 请大家推荐一点好的JAVA编译器 求大神来科普一下lock与synchronized的区别 jsp连接acess数据库时遇到的问题,在线等待 JAVA初学者进,有好东西
例如 String s="abc";
"abc"就是对象,没有名字。机器是通过地址来识别对象的,名字只是方便程序员识别的标识,不是必须的。
在你的例子中:
for(int i=0;i<225;i++)
{
this.add(new myPanel());
}
你只是在堆里new了一大堆myPanel的对象,但没有给他们一个引用名,所以你无法对他们进行其他任何操作。
for(int i=0;i<225;i++)
{
this.add(new myPanel());
}
你只是在堆里new了一大堆myPanel的对象,但没有给他们一个引用名,所以你无法对他们进行其他任何操作。
-----------------------------------------------------------------------------
对不起,上面的说法不是很严密,如果你的this是一种container,你就可以用this的方法或下标来使用这些myPanel的对象。
如果不需要操作对象,这样声明没问题。如果构造器为空,这样做没有任何意义,只是浪费存储空间;如果构造器不为空,它分配存储空间的同时只执行构造器中的操作
比如你是 void get(myPanel m),那么对象的名字就是m
比如这个例子放在这个类中
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);
}
}