什么是构造函数

构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员对象。

构造函数的特点:

  1. 构造函数必须与类的名字相同,并且不能有返回值(返回值也不能为void)。
  2. 每个类可以有多个构造函数。当开发人员没有提供构造函数时,编译器在把源代码编译成字节码的过程中会提供一个没有参数默认的构造函数,但该构造函数不会执行任何代码。如果开发人员提供了构造函数,那么编译器就不会在创建默认的构造函数了。
  3. 构造函数可以有0个、1个或1个以上的参数。
  4. 构造函数总是伴随着new操作一起调用,且不能由程序的编写者直接调用,必须要由系统调用。构造函数在对象实例化时会被自动调用,且只运行一次;而普通的方法是在程序执行到它时被调用,且可以被该对象调用多次
  5. 构造函数的主要作用是完成对象的初始化工作。
  6. 构造函数不能被继承,因此,它不能被覆盖,但是构造函数能被重载,可以使用不同的参数个数或参数类型来定义多个构造函数。
  7. 子类可以通过super关键字来显式地调用父类的构造函数,当父类没有提供无参数的构造函数时(即开发人员自己定义了有参构造方法,没有了默认的无参构造方法),子类的构造函数中必须显式地调用父类的构造函数。如果父类提供了无参数的构造函数,此时子类的构造函数就可以不显式地调用父类的构造函数,在这种情况下编译器会默认调用父类提供的无参数的构造函数。当有父类时,在实例化对象中会先执行父类的构造函数,然后执行子类的构造函数。
  8. 当父类和子类都没有定义构造函数时,编译器会为父类生成一个默认的无参数的构造函数,给子类也生成一个默认的无参数的构造函数。此外,默认构造器的修饰符只跟当前类的修饰符有关。

引申:
普通方法是否可以跟构造函数有相同的方法名?
可以。如:

public class ConstructDemo {
    public ConstructDemo(){
        System.out.println("构造器");
    }
    public void ConstructDemo(){
        System.out.println("跟构造器相同名称的普通方法");
    }

    public static void main(String[] args) {
        ConstructDemo a=new ConstructDemo(); //实例化对象,自动调用构造函数
        a.ConstructDemo(); //调用跟构造器相同名称的普通方法
    }
}
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值