A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我能驾驭住 中级黑马   /  2012-6-8 23:46  /  1448 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1技术分 +1 收起 理由
赵志勇 + 1 很给力!

查看全部评分

3 个回复

倒序浏览
{:soso_e182:}
回复 使用道具 举报
胡卿 发表于 2012-6-9 02:36

哥们,这么晚了,还在逛论坛!必须顶一个!:D
回复 使用道具 举报
不容易,顶一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马