构造器(构造方法)的作用与用法详解:无参与有参构造器区别及初始化对象

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

构造器(构造方法)的作用与用法详解:无参与有参构造器区别及初始化对象

什么是构造器

构造器,也被称作构造方法或者构造函数。它的作用是构建出一个类的实例,并且能够保证对象得到初始化。

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岁了

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

25阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

25阅读