一:基本语法
// [修饰符] 方法名(形参列表){
// 方法体;
// }
class person{
public person(){
//方法体
}
}
:::danger
说明:
1:构造器的修饰符可以默认, 也可以是 public protected private
2: 构造器没有返回值
3: 方法名 和类名字必须一样
4:参数列表 和 成员方法一样的规则
5:构造器的调用, 由系统完成
:::
二:基本介绍
构造方法又叫构造器,是类的一种特殊的方法,它的主要作用是完成对新对象的初始化,有以下几个特点:
- 方法名和类名相同
- 没有返回值
- 在创建对象时,系统会自动调用该类的构造器完成对象的初始化
class person{
String name;
int age;
public person(String name,int age){
this.name = name;
this.age = age;
}
}
三:注意事项和细节
—个类可以定义多个不同的构造器,即构造器重载
比如:我们可以再给Person类定义一个构造器,用来创建对象的时候,只指定人名,不需要指定年龄
class person {
//分别指定无参构造器和有参构造器
public person (){
}
public person (String name ,int age){
}
}
构造器名和类名要相同
- 构造器没有返回值
构造器是完成对象的初始化,并不是创建对象,且在创建对象时,系统自动的调用该类的构造方法 ```java public static void main (String[] args){
//建对象时,系统自动的调用该类的构造方法 person p1 = new person(“sakura”,”20”);
} class person { public person (String name , int age){ this.name = name; this.age = age; } }
- **_如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器(也叫默认构造器)_**,可以使用javap指令反编译看看
```java
class person {
//若没有定义构造器,系统会自动生成一个无参的构造器
}
- 一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器,除非显式的定义一下 ```java
class person { //当定义过有参的构造器之后,就没有无参的构造器了 //除非自己显式的定义以下 public person (String name , int age){
}
四:对象的创建流程分析
- 加载Person类信息(Person.class),只会加载一次
- 在堆中分配空间(地址)
- 完成对象初始化
- 对象在堆中的地址,返回给p(p是对象名,也可以理解成是对象的引用