• 目录

类的构造器语法

阅读量: 592 编辑

类的构造器

  • 用于创建对象,每个类都至少有一个构造器(默认是隐藏的)

  • 构造器名称必须和类名称一致

  • 一个类可以有多个构造器,但这些构造器的参数列表必须不同

  • 如果没有定义构造器,则系统将自动提供一个默认的不带任何参数的构造器

  • 一旦自己定义了一个构造器,那么,默认的就会消失掉

  • 当我们使用 new 的时候就是调用的构造器

  • 构造器本质上是一个特别的函数,所以语法和函数类似,只是构造器的名字必须和类的名字一致

  • 有参数的构造器,表示我们在用 new 实例化对象的时候,必须给属性设定值。当然如果不在实例化的时候设定,也可以在创建完成之后,再单独设定

一、类的语法

[<modifiers>] class <class_name> {
    [<attribute_declarations>]
    
    //构造器语法
    [<constructor_declarations>]
    [<method_declarations>]
}

二、构造器的语法

[<modifiers>]  <class_name> ([<argu_list>]){
    [<statements>]
}
  • [<modifiers>] 访问权限修饰符,包括 public default protected private

  • <class_name>:必须和类的名字一致

  • [<argu_list>]:构造器的参数,可以有也可以没有

  • [<statements>]:构造器中的代码片段

  • 构造器本质上就是类的方法,只是构造器没有返回值

  • 如果开发者不自己定义构造器,系统会提供一个默认的、没有参数的构造器,方便我们使用new关键字来创建实例

  • 如果开发者自己定义了构造器,那么系统就不会提供默认的构造器

三、代码实战

代码的详细解读,可以参考视频教程

Person.java

package com.qicong.zj.c05;

/**
 * User: 祁大聪
 * 类名必须和文件名一样
 */
public class Person {
	
    //类的属性
    private String name;
    private int age;

    //如果没有其他的构造器,系统默认就有一个隐藏的没有参数的构造器
    public Person(){
        System.out.println("Person() is called");
    }

    //有参数的构造器
    public Person(String name){
        System.out.println("Person(String name) is called");
        this.name = name;
    }

    //有参数的构造器,参数列表必须和其他的构造器不一样
    public Person(String name,int age){
        System.out.println("Person(String name) is called");
        this.name = name;
    }

    public static void main(String[] args) {
    
        //创建的实例时候,根据不同的参数列表调用不同的构造器
        Person p = new Person("三妮");
        p.name = "三妮";
        System.out.println(p.name);
    }
    
}



  • 目录