1.this有两种用法:
Test(String s)
{
//Test(); 构造函数的调用必须用this
this();
System.out.println(s);
System.out.println(this.s); //this的第二种用法,代表当前对象
// this(); 调用构造函数必须在第一行中调用
}
2.强制系统进行垃圾回收
System.gc()
3.关于初始化
局部变量不会有默认初始化必须在第一次使用前进行初始化(不一定是定义时,如果定义后不使用,只需要在使用前赋值即可)。
但是类的成员变量,系统会进行默认初始化。
4.成员变量的初始化在构造函数之前。
用尽可能简单的方法使对象进入正常状态,如果可以的话,避免调用其他方法。在构造器内唯一能能够安全调用的那些方法是父类中得final得方法。也可以是private得方法,他们自动属于final的,这些方法不能被覆盖,因为也就不会出现上述令人惊讶的问题。
5.匿名内部类
class NoNameClass
{
//这里将新建的内部类向上转换成其父类Contents返回
//由此也可以看出,内部类只能重写父类的方法,利用多态的特性可以被调用的。
//但是新增的属性是无法被调用到的。
Contents getNoNameClass()
{
return new Contents()
{
void func()
{
data = data + 1;
System.out.println("data+1 = "+data);
}
}; //return语句的分号
}
Test(String s)
{
//Test(); 构造函数的调用必须用this
this();
System.out.println(s);
System.out.println(this.s); //this的第二种用法,代表当前对象
// this(); 调用构造函数必须在第一行中调用
}
2.强制系统进行垃圾回收
System.gc()
3.关于初始化
局部变量不会有默认初始化必须在第一次使用前进行初始化(不一定是定义时,如果定义后不使用,只需要在使用前赋值即可)。
但是类的成员变量,系统会进行默认初始化。
4.成员变量的初始化在构造函数之前。
用尽可能简单的方法使对象进入正常状态,如果可以的话,避免调用其他方法。在构造器内唯一能能够安全调用的那些方法是父类中得final得方法。也可以是private得方法,他们自动属于final的,这些方法不能被覆盖,因为也就不会出现上述令人惊讶的问题。
5.匿名内部类
class NoNameClass
{
//这里将新建的内部类向上转换成其父类Contents返回
//由此也可以看出,内部类只能重写父类的方法,利用多态的特性可以被调用的。
//但是新增的属性是无法被调用到的。
Contents getNoNameClass()
{
return new Contents()
{
void func()
{
data = data + 1;
System.out.println("data+1 = "+data);
}
}; //return语句的分号
}
}