简述构造函数

本人小白一枚,欢迎大家一起讨论学习,如有错误,还望大家指教。

构造函数
构造函数(构造器)是一种特殊的函数,它用来给对应的对象初始化。
构造函数的特点:

  1. 名称必须和类名相同。
  2. 每个类可以有一个以上的构造器(可以重载)。
  3. 没有返回值。
  4. 不允许用户显示调用,只能紧跟在new之后调用。
  5. 如果没有定义任何构造函数,将会为这个类缺省定义一个空参构造器。如果定义了构造函数,那么将不再提供缺省的构造器。

既然它是函数,它与普通的函数有什么区别呢?

  1. 格式不同:
    构造函数不存在返回类型,函数名与所在类的类名一致。
    普通函数有返回类型,函数名可以根据需求进行命名。
  2. 调用时期不同:
    构造函数在类的对象创建时就运行。
    普通函数在对象调用时才会执行。
  3. 执行次数不同:
    一个对象创建后,其构造函数只执行一次,就是创建时执行。
    一个对象创建后,其普通函数可以执行多次,取决于对象的调用次数。

构造函数私有化
既然构造函数是用来给对象进行初始化的,我们如果给构造函数私有化,有什么用处呢?
这样我们会涉及到一种设计模式—>单例设计模式,我们只希望new出一个对象,不希望别人去给我们new对象时,可以将构造函数私有化,我会在下面的学习中,会慢慢深入设计模式。
下面我们介绍一个在面试中可能会遇到的知识点:构造代码块
与构造函数不用的是:
构造函数写法为 修饰符 类名(参数) {方法体}
而构造代码块的写法只有 {方法体}

class Person {
     private String name;

    // 构造代码块
    {
        System.out.println("构造代码块");
    }

    // 构造函数
    public Person(String name) {
        this.name = name;
        System.out.println("构造函数");
    }
}
public class Demo {
    public static void main(String[] aaa) {
        System.out.println(new Person("hah"));
    }
}

打印结果:
在这里插入图片描述
构造代码块的作用和与构造函数的区别:
构造代码块作用:给对象进行初始化,对象一建立就运行,而且优先于构造函数。
与构造函数的区别:构造代码块是给所有对象进行初始化,而构造函数是给对应的对象初始化。
所以我们得出:构造代码块定义的是不同对象共性的初始化内容
简述this:

  1. this用于区分同名变量的情况。
  2. this语句用于构造函数之间进行互相调用。(注:this语句只能定义在构造函数的第一行,因为初始化要先执行。)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值