SCJP认证 1.5.3 (1)构造函数声明

在Java中,对象是被构造出来的,每次生活从呢个一个新对象时,至少要调用一个构造函数。每个类都有一个构造函数,及时比现实地创建,编译器也会为其建立一个构造函数。有大量与构造函数有关的规则,第二章将讲述详细内容。现在,我们主要关注基本的生命规则。下面是一个简单的例子:

class Foo{ protected Foo(){ } protected void Foo(){ } }

 

首先要注意的是,构造函数看起来非常像方法。一个重要的区别是:构造函数永远、永远、永远不能有返回类型! 

但是构造函数声明可以具有所有常规访问修饰符,并且他们可以带有变元(包括var-arg) ,就像方法一样。要理解的关于构造函数的另一个重要规则是:它们必须具有与声明它们的类相同的名称。构造函数的另一个重要规则是:

1)它们必须具有与声明它们的类形同的名称。

2)构造函数不能标识为static(别忘了,他们与对象实例化相关联)

3)他们也不能标识为final或abstract(因为他们不能被重写)。

下面给出了一些合法和非法的构造函数声明的例子:

class Foo2 { //legal constructors private Foo2 (byte b){ } Foo2(int x){ } Foo2(int x, int... y){} //illegal constructors void Foo2(){} //it's a method, not a constructor Foo(){} //not a method or a constructor Foo2(short s); //look like a abstract method static Foo2()(}//can't be static final Foo2(){} //can't be final abstract Foo2(){} // can't be abstract Foo2(int... x, int t){} //bad var-arg syntax }  

 

 

 

你可能感兴趣的:(SCJP,JavaSE)