构造函数具有以下几个特点:
第一:构造函数名与类名相同;
第二:构造函数不返回任何值,也没有返回类型;
第三:每一类可以有零个或多个构造方法;
第四:构造方法在创建对象时自动执行,一般不用显示地直接调用。
其次,就上面几个需要说明的特点进一步进行解释:
特点一:构造函数名与类名相同。这个很简单,只要知道Java语言是区分大小写即可;
特点二:这一特点需要说明,并加以强调。构造函数不返回任何值,也没有返回类型,因此在构造函数前面不可添加各种基本数据类型,也不可添加引用类型。关键问题是,既然构造函数不返回任何值,部分人很可能会在构造函数前面加上void关键字,这正是问题所在。虽然没有返回类型,而且void也表示不返回任何值,但在构造函数前面最好不要添加void关键字。如果构造函数是无参的,编译没有问题,否则,则会有错误。例如下例所示:
public class MyTest
{
int i;
String s;
public MyTest()
{
System.out.println("调用无参构造函数");
}
public MyTest(int i)
{
this.i=i;
System.out.println("调用单参函数*******i="+i);
}
public MyTest(int i,String s)
{
this.i=i;
this.s=s;
System.out.println("调用双参函数.....i="+i+", s="+s);
}
public static void main(String []args)
{
MyTest t1=new MyTest();
MyTest t2=new MyTest(2);
MyTest t3=new MyTest(3,"Hello");
}
}
在上例中,三个构造函数进行了重载,这时,在构造函数的前面不可添加void关键字,否则会有编译错误。
特点三:每一类可以有零个或多个构造方法。如果类没有构造函数,编译器会自动添加默认的无参构造函数,当调用默认的构造函数时,就会利用构造函数为类的成员变量进行初始化,当然不同的类型其默认的初始值不同。一旦用户定义了构造函数,则不会产生默认的构造函数。当有多个构造函数时,系统会根据产生对象时,所带参数的不同而选择调用不同的构造函数。
特点四:构造方法在创建对象时自动执行,一般不用显示地直接调用。构造函数的作用是对类的成员变量进行初始化操作,因此都是在创建类的对象是自动执行。
this的作用:
1,在构造器中,代表该构造器所创建的实例对象。
2,在方法中,指调用该方法的对象。
3,在流离块中。只流离块所属的类的实例。
总而言之,记住一句话,this是指当前对象,哪个对象在调那个方法,this就代表那个对象。
|