public class A{
...
int c;
public A()
{
...
button.addMouseListener(new B());
...
}
...
public static void main(String[] args){
B b=new B();
}class B implements MouseListener
{
A a=new A();//如果在这里实例对象也应该是对的吧
public boid mouseClicked(MouseEvent e)
{
System.ou.println(a.c);//这里我随便执行个动作
}
...
我知道这样的程序可以用this指针解决,但有疑问捆饶我了
我想问:
在A类中有c成员数据和构造函数中有(new B());对B的实例化
在B类中有A类的实例化 这样会不会有造成死循环;
问题所在,类实例过程中成员对象和函数怎么进行(顺序和做了什么),
一直认为实例化只是调用了类的构造函数执行..希望给个详细说明
...
int c;
public A()
{
...
button.addMouseListener(new B());
...
}
...
public static void main(String[] args){
B b=new B();
}class B implements MouseListener
{
A a=new A();//如果在这里实例对象也应该是对的吧
public boid mouseClicked(MouseEvent e)
{
System.ou.println(a.c);//这里我随便执行个动作
}
...
我知道这样的程序可以用this指针解决,但有疑问捆饶我了
我想问:
在A类中有c成员数据和构造函数中有(new B());对B的实例化
在B类中有A类的实例化 这样会不会有造成死循环;
问题所在,类实例过程中成员对象和函数怎么进行(顺序和做了什么),
一直认为实例化只是调用了类的构造函数执行..希望给个详细说明
http://www.elearning.gov.cn/elearning/user/findclass.do?method=courselist&categoryid=57982540b6cd11d993d0f770c0a83c70&id=2
或者你懒惰一点,作个STATIC变量或者类都可以,就不用实例化了,直接调用
B b=new B();
在堆区开辟一块空间,存储新new出来的B类对象(成员变量),在栈区开辟一个地址,命名为b,指向这个对象的地址,然后把存储在数据区(date_seg)的static成员变量赋初值(如果是第一次实例化此对象)。而方法成员是在程序调用此方法时在栈区开辟临时空间,你把它看作是局部变量就好了。
类定义不太明白会做什么,不过论坛里刚有兄弟发帖说:static静态块是在类第一次实例化的时候执行的而不是在类刚加载的时候执行的。可能类定义也就相当于普通的代码段。
while(true){
new object();
}没区别不应该写出这种程序