黑马程序员技术交流社区

标题: 构造函数 分享了 [打印本页]

作者: 我能驾驭住    时间: 2012-6-8 23:46
标题: 构造函数 分享了
构造函数具有以下几个特点:
     第一:构造函数名与类名相同;
     第二:构造函数不返回任何值,也没有返回类型;
     第三:每一类可以有零个或多个构造方法;
     第四:构造方法在创建对象时自动执行,一般不用显示地直接调用。
     其次,就上面几个需要说明的特点进一步进行解释:
     特点一:构造函数名与类名相同。这个很简单,只要知道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就代表那个对象。

作者: 胡卿    时间: 2012-6-9 02:36
{:soso_e182:}
作者: 梁小波    时间: 2012-6-9 02:49
胡卿 发表于 2012-6-9 02:36

哥们,这么晚了,还在逛论坛!必须顶一个!:D
作者: 田建    时间: 2012-6-9 09:17
不容易,顶一个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2