Java中的构造器

1.什么是构造器?

        在日常生活中,盖房子需要工具和工人,通过工人使用这些工具,来修建一个房子。在Java中,构造器就好比是工具,而new关键字就是工人,通过new关键字和构造器结合来创建对象。要建立对象就要使用new关键字来建立对象,这是建立对象唯一的方法。

       构造器的作用: 1.创建java对象的重要途径. 2.对系统产生的对象初始化 3.并将该对象作为返回值返回,是外部程序可以访问.

2.构造器的语法组成。

   1)构造器可以使用的修饰符有publicprotecteddefaultprivate,不写即为default类型的。

   2)构造器的名称必须要和类的名称相同。

   3)不能有返回值,void也不行。

   4)构造器的参数可有可无。有一个也可有多个参数。

3.构造器方法和普通方法的区别。

   主要是功能上、修饰符上、返回值上和命名上有本质的区别。

   1)方法是为了执行相应的方法体。即Java代码。

    2)构造器可以被修饰为publicprotecteddefaultprivate类型,但不能修饰为abstractfinalnativestaticsynchronized。

    3)方法可以修饰为除了protectednative外的修饰符。

    4)构造器的名称要和类的名称相同。

    5)方法的名称可以任意起,但要注意标识符的命名规则。使其更具有意义。

4.子类构造器调用父类构造器的几种情况

       1).子类构造器的执行体的第一行用super显式调用父类构造器,系统将根据super 调用里传入的实例列表调用父类对应的构造器

        2).子类构造器执行体的第一行是this显式调用本类中重载的构造器,系统根据this调用里传入的实参列表调用本类中另一个构造器,执行本类中另一个构造器时,既会调用父类的构造器。

        3).子类构造器中既没有this,也没有super,系统将会在执行子类构造器之前隐式调用父类无参的构造器

不管上面哪种情况,当调用子类构造器来初始化子类对象时,父类构造器总会在子类构造器之前执行,不仅如此,执行父类构造器时,系统会再次上溯执行其父类的构造器。。。。以此类推。创建任何java对象,最先执行的总是java.lang.Object类得构造器。

5.举例:

class TestSuper{
    TestSuper(int i){}     //指定了一个有参数的构造器,系统将不再为该类提供默认构造器

    }

    class TestSub extends TestSuper{    //在这里子类未定义构造器,系统将会提供默认构造器

    TestSuper(){ super();}

    }

    public class TestAll{

    public static void main(String args[]){

    new TestSub();

    }

    }

    不能编译成功,如果我们在eclipse这样写的话,就会有错误提示。

    解决方法1:

    在子类TestSub中添加无参数构造函数:

    public TestSub() {

    super(0);

    //显式调用父类的带参数的构造器

    }

    解决方法2:

    在TestSuper类添加无参数构造函数TestSuper(){} //显式指定父类的无参构造器。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值