Java面向对象-7.构造器

来源:互联网 发布:pop3 端口号 编辑:程序博客网 时间:2024/04/28 03:07

构造器
用于创建对象并初始化对象属性的方法,叫“构造方法”,也叫“构造器”;构造器在类中定义。

1、构造器的名称必须与类名同名,包括大小写。

2、构造器没有返回值,但也不能写void,也不能写return。

3、构造器的参数:一般是初始化对象的前提条件。

4、用new调用,且对象一建立,构造器就运行且仅运行一次。一般方法可被调用多次。

5、类一定有构造器。

6、如果类没有声明(定义)任何的构造器,Java编译器会自动插入默认构造器。

7、默认构造是无参数,方法体是空的构造器,且默认构造器的访问权限随着所属类的访问权限变化而变化。如,若类被public修饰,则默认构造器也带public修饰符。

8、默认构造器是看不到的,一旦自己写上构造器则默认构造器就没有了,自己写的叫自定义构造器,即便自己写的是空参数的构造器,也是自定义构造器,而不是默认构造器。

9、如果类声明了构造器,Java编译器将不再提供默认构造器。若没手动写出无参构造器,但却调用了无参构造器,将会报错。

eg:默认构造器

public class Demo{    public static void main(String[] args){        Foo foo = new Foo();//调用了javac自动添加的默认构造器        //Koo koo = new Koo();//编译错误,没有Koo()构造器        Koo koo = new Koo(8);    }}class Foo{}//Foo有构造器,有无参数的默认构造器class Koo{    public Koo(int a){//声明了有参数构造器        System.out.println("Call Koo(int)");    }}

10、构造器是可以重载的,重载的目的是为了使用方便,重载规则与方法重载规则相同。

11、构造器是不能继承的,虽说是叫构造方法,但实际上它不是常说的一般方法。

12、子类继承父类,那么子类型构造器默认调用父类型的无参数构造器。

13、子类构造器一定要调用父类构造器,如果父类没有无参数构造器,则必须使用super(有参数的),来调用父类有参的构造器。那么,为什么子类一定要访问父类的构造器?因为父类中的数据子类可以直接获取。所以子类对象在建立时,需要先查看父类是如何对这些数据进行初始化的,所以子类在对象初始化时,要先访问一下父类中的构造器。子类中至少会有一个构造器会访问父类中的构造器,且子类中每一个构造函数内的第一行都有一句隐式super()。

0 0
原创粉丝点击