(1)构造器的作用
构造方法也叫构造器,是一个创建对象时被自动调用的特殊方法,用于对象的初始化。
Java通过new关键字来调用构造器,从而返回该类的实例。
Ps:它的作用不是为了创建对象,而是在创建对象的同时,给它进行初始化。初始化才是构造器的一个作用。
(2)构造器声明格式
[修饰符] 类名(形参列表){
//n条语句
}
若无参数列表,称之为无参构造器(空构造器)。
若有参数列表,称之为有参构造器。
(3)构造器四要点
(4)构造器的重载
构造方法也是方法,只不过有特殊的作用而已。与普通方法一样,构造方法也可以重载。
Person.Java中的代码:
package com.test02; /* * 人类 * */ public class Person { //属性 (只定义和业务逻辑相关的代码) String name;//姓名 int age;//年龄 double height;//身高 //方法 (只定义和业务逻辑相关的代码) public void study() { System.out.println("行则将至"); } public Person(){ System.out.println("调用空构造器"); } public Person(String a,int b,double c){ name = a; age = b; height = c; } }
Test.Java中的代码:
package com.test02; /* * 测试类 * */ public class Test { public static void main(String[] args) { Person p1 = new Person("周清风",53,177.1); System.out.println(p1.name); Person p2 = new Person("周风",43,176.12); System.out.println(p2.name); } }
运行Test.Java:
(5)注意
1. 构造器详细解释
2.构造器的参数名字,如果和属性名字重名,就会发生就近原则。
若将Person.Java中的代码:
public Person(String a,int b,double c){ name = a; age = b; height = c; }
改为:
public Person(String name,int age,double height){ name = name; age = age; height = height; }
则运行Test.Java:
原因:
指的都是形参列表里的,相当于没有赋值。
修改:
在表达属性的变量前加上this.来修饰。
public Person(String name,int age,double height){ this.name = name; this.age = age; this.height = height; }
3.如果一个类中有构造器,那么系统就不会帮你分配默认的空构造器。
若Person.java:
则Test.java:
会报错。
Ps:大家有问题可以在评论区一起讨论,我也是刚开始学,自己记一些笔记。