ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 深入构造器 > 构造器的最大用处就是创建对象。 如果在类定义中没有显式的定义一个构造器,则编译器在编译源文件时,会创建一个没有参数、没有方法体执行语句的空的构造器。**也就是说一个类中至少存在一个构造方法** 正因为有了这样的构造方法,所以当实例化对象的时候,采用“new 构造器()”的时候才不会提示没有五参数构造方法的错误信息。 如果显式的定义了一个构造器,则上述的空的构造器则不会存在。 在调用构造器创建对象的时候,系统会为每个对象的实例变量设置默认值 > 基本数据:数值型的为0,布尔类型的为false,char类型的为’\\u0000’; > 引用数据类型:null; > 如果在方法中定义的局部变量:系统是不会对其设置默认值的,必须要显式的通过赋值运算符=给变量赋值。 **通过构造器为成员变量定义初始化值,这也是构造器的最最重要的用途之一。** ## 构造器重载 如果需要在构造器中调用另外一个构造器,可以使用 this(params); 在构造器中调用构造器,必须把this(params)放在有效的执行语句第一行,而且不允许出现两条this(params)语句。 ~~~ public Client1(int age, String code, String name) { this(age); this.name = name; } public Client1(String code) { this.code = code; } public Client1(int age) { // 复用 if (age < 0 || age > 150) { System.out.println("不合法的年龄数据"); } else { this.age = age; } } ~~~ 构造器的重载的好处在于,可以在对象实例化的时候通过不同额构造方法来进行属性初始化内容的设置,减少setter()方法的使用,以实现简化代码的目的。 ## 什么是方法签名 方法签名是由方法的方法名和形参列表(注意方法的参数的顺序和类型)组成; 注意:**不包括返回值和访问修饰符** ## 重载 重载(Overload)是让类以统一的方式处理不同类型数据的一种手段,实质表现就是多个具有不同的参数个数或者类型的同名函数(返回值类型可随意,不能以返回类型作为重载函数的区分标准)同时存在于同一个类中,是一个类中多态性的一种表现(调用方法时通过传递不同参数个数和参数类型来决定具体使用哪个方法的多态性)。 **重载规则**:必须具有不同的参数列表; 可以有不同的返回类型;可以有不同的访问修饰符;可以抛出不同的异常。 单类**中**的多态性:这边强调的是在一个类中,本质上是类中方法的多态性。