有趣的问题一起讨论~~~~~(20分)

  • 主题发起人 主题发起人 jiang_sl
  • 开始时间 开始时间
J

jiang_sl

Unregistered / Unconfirmed
GUEST, unregistred user!
有趣的问题:
class A{
void method1(){..}
void method2(){..}
}
class B{
A a = new A();
a.method1();
a.method2();
}
和类
class C{
A a;
public C(){ a = new A();}
a.method1();
a.method2();
}
类B 和类C 都声明了a
这两种声明方式有什么不同??
区别大吗???
希望大家发表意见~~~
 
c是在构造函数中声明的,应该在创建c的时候就创建了一个a的事例,b是在引用的时候创建的,在c里,能把a做为一个变量来用了。
是不是这样我也不是很清楚,听听有没有人能回答[:)]
 
class a
{
public a(){Console.WriteLine("a is coming!");}
public void M1(){Console.WriteLine("M1");}
public void M2(){Console.WriteLine("M2");}
}
class b
{
a a1=new a();
//1
public b(){Console.WriteLine("b is coming!");} //2
public void M3(){a1.M1();Console.WriteLine("M3 is coming!");}
}
class c
{
a a1;//无
a a2=new a();
//1
public c(){a1=new a();Console.WriteLine("c is coming!");} //2
public void M5(){a1.M1();Console.WriteLine("M5 is coming!");}
}
//可以单步调试,就发现c类a2第一步被执行初始化,a1要到c的构造函数被调用时才被初始化。
 

Similar threads

D
回复
0
查看
867
DelphiTeacher的专栏
D
D
回复
0
查看
836
DelphiTeacher的专栏
D
D
回复
0
查看
785
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部