public class Test
{
private AAA aaa; private BBB bbb;
public Test()
{
this.aaa = new AAA();
this.bbb = new BBB();
}
}public class Test
{
private AAA aaa=new AAA();; private BBB bbb=new BBB();;
public Test()
{
}
}
请问一下这样两个类,有点什么区别哈?
或者将来在使用中可能会遇到一些怎么样的区别哈?
感觉区别不大的说。。
{
private AAA aaa; private BBB bbb;
public Test()
{
this.aaa = new AAA();
this.bbb = new BBB();
}
}public class Test
{
private AAA aaa=new AAA();; private BBB bbb=new BBB();;
public Test()
{
}
}
请问一下这样两个类,有点什么区别哈?
或者将来在使用中可能会遇到一些怎么样的区别哈?
感觉区别不大的说。。
private AAA aaa=new AAA();; private BBB bbb=new BBB();;
这样写的话执行的时机比在构造方法中要早一些
比如 public void testab()什么的
{
aaa.xxx1();
bbb.xxx2();
}
感觉也不会有什么区别。。大家有什么例子能说明 将来会在什么地方导致有所差别的哈~
public class Test
{
private AAA aaa; private BBB bbb;
public Test()
{
this.aaa = new AAA();
this.bbb = new BBB();
} public void testab()
{
aaa.xxx1();
bbb.xxx2();
}}
public class Test
{
private AAA aaa=new AAA();; private BBB bbb=new BBB();;
public Test()
{
} public void testab()
{
aaa.xxx1();
bbb.xxx2();
}}貌似这两个类也没啥区别~~~~~~~~~~~~~~~~
public Test()
{
this.aaa = new AAA();
this.bbb = new BBB();
}
改一下
public Test(AAA aaa, BBB bbb)
{
this.aaa = aaa;
this.bbb = bbb;
}
这是就必须用this了!
我觉得this一般就是说在有重名的时候用,这是能把变量对象区分开。
还有个super,指的是父类的吧,和this差不多。
我平时在调用类里的全局变量时用this,觉得看起来清楚一些。还有就是调用类里方法时,this加一个点名字就都出来了,不用现找,也省得敲了!
但是写在构造方法里的话,可以根据传入的参数来构造。直接初始化就没有这个灵活性。
如果你确定是 = new AAA();这样的情形,直接初始化很好。
{
private AAA aaa; private BBB bbb;
public Test()
{
this.aaa = new AAA();
this.bbb = new BBB();
}
public Test(AAA aaa) {
this.aaa = new AAA();
//这儿bbb将没有被初始化
}
}