构造器(构造方法)的作用与用法详解:无参与有参构造器区别及初始化对象
构造器也被称作构造方法和构造函数。它是一种特殊类型的方法,其作用是对类中的成员变量(域)进行初始化。构造器的用途在于在创建对象时执行初始化操作。当创建一个对象时,系统会对这个对象的实例进行默认的初始化。

什么是构造器
构造器,也被称作构造方法或者构造函数。它的作用是构建出一个类的实例,并且能够保证对象得到初始化。
2.构造器的格式: 权限修饰符 类名(无参/有参){}。
3.根据有无参数,可分为无参构造 和有参构造。
构造器的最大用处在于创建对象时进行初始化。创建一个对象时,系统会对这个对象的实例进行默认的初始化。若想要改变这种默认的初始化,就可以借助自定义构造器来达成。
构造器能够在初始化对象时对数据成员进行初始化,一个类具备多个构造器的情况是存在的。一个类的构造器,其名称必然与该类的名称保持一致。若要退出构造,可运用返回语句“return;”。
构造器的特性
构造方法名和一般方法名不一样,它必须与类名保持一致,而且没有返回值,连 void 都没有。
Java 编译器会自动创建无参构造函数。所以在类中,即便没有无参构造函数,我们也可以省略不写。在实例化对象的时候,不需要进行赋值操作。
如果类中已经存在有参构造函数,那么编译器就不会再提供默认的无参构造。在实例化对象的时候,需要给对象赋值,否则就会报错。
4.当类实例化一个对象时会自动调用构造方法。
不能用 static 来修饰。不能用 final 来修饰。不能用 synchronized 来修饰。不能用 abstract 来修饰。不能用 native 来修饰。构造方法不能被子类所继承。
6.每个类可以有零个或多个构造方法.
示例一:无参构造
学生类public class Student {
权限修饰符为 public 时,表示内部属性能够被其他类访问到。而当使用 private 时,就需要通过 set/get 方法才能进行访问。
public String name;
public int age;
//无参构造,编译器自带,可不写。
public Student(){
System.out.println("括号内没有参数,这便是无参构造。");
测试类public class Test {
公共静态的 void 方法 main,它的参数是 String 类型的数组 args。
创建了一个名为 st 的 Student 对象,括号内无需进行赋值操作。
在未赋值的情况下,字符类型的默认值是 null,数值类型的默认值是 0。
//输出结果为 null,0
//对属性进行赋值
st.name="Tom猫";
st.age=5;
System.out.println("st.name 对应的人今年" + st.age + "岁啦。");
结果括号内无参数,这就是无参构造
null 0
Tom猫今年5岁了
示例二:有参构造
学生类public class Student {
//权限修饰符是public,表示内部属性能被其他类访问到。若使用private,则需要set/get才能访问
public String name;
public int age;
//无参构造最好也写上
public Student(){
创建一个公共的 Student 类,该类接收一个字符串类型的 name 和一个整数类型的 age 作为参数。
System 输出的内容为:括号内有参数,那就意味着是有参构造。
//将形参变量的值,赋给成员变量。
this.name = name;
this.age = age;
this.name 等于“吴邪”。如果直接在构造方法内部进行赋值操作,那么就会优先执行构造方法内部所赋的值,也就是说“吴邪”会取代 Tom 猫。
测试类public class Test {
public static void main(String[] args) {
//创建对象。赋值后,定义的值会传递给构造器中的形参变量。
创建一个名为 st 的 Student 对象,在创建时需要在括号内进行赋值,若不赋值则会报错,这里赋值为"Tom 猫"且年龄为 5 。
//使用对象调用成员变量(java对象只能调用成员变量)
System.out.println("岁了");
结果括号内有参数,就是有参构造
Tom猫今年5岁了