构造器,进行内存的分配和变量的初始化
构造器也称构造方法
这是构造器的命名方法
[修饰符,比如public] 类名 (参数列表,可以没有参数){
//不能有return,不会返回值也不要写void
}
java文件编译生成class文件
如果你在java文件中没有定义构造器
编译会自动生成一个默认构造器
1.默认构造器
java文件
public class People {
}
class文件
public class People {
public People()//生成的默认构造器,该方法名字一定要与类名相同
{
}
}
构造器的作用
完成对新对象的初始化和内存的分配
Person person=new Person();
不是创建对象,而是对对象中的值的初始化和内存分配
由于构造器是 对对象中的属性初始化的一个作用
所以可以调用构造器对对象的属性进行初始化而不是创建对象
用赋值语句进行初始化
当你new文件时候,先系统进行对象创建,然后调用构造器方法(构造器里面的语句会全部执行)
2.有参构造器/无参构造器
无参构造器
默认构造器就属于无参构造器的一种
无参构造器可以在里面加点语句,初始化属性
public class Person {
String name;
public Person()
{
name="xiaoyuan";
}
}
当然,我们一般不这么做,如果我们这么做,为什么不直接在属性中定义
String name="xiaoyuan";
这样还能节省很多代码
自定义构造器
public class Person {
String name;
int age;
public Person(String names,int ages)//自定义构造器
{
this.name=names;//这里直接写name也可以
age=ages;
}
}
如果自定义构造器,默认构造器则不会生成
调用的时候
Person person=new Person("xiaoyuan",100);
System.out.println("person.name");//输出xiaoyuan
3.构造器的重载
public class People {
String name;
int age;
public People(String names)//自定义构造器
{
this.name=names;
}
public People()
{
}
public People(String names,int ages)
{
age=ages;
name=names;
}
}
定义多个构造器
进行构造时,系统会根据参数的输入来确定具体调用哪个构造器
从而进行指定对象的初始化赋值
注意
Java语言中,每个类都至少有一个构造器
默认构造器的修饰符与所属类的修饰符一致
一旦显式定义了构造器,则系统不再提供默认构造器
一个类可以创建多个重载的构造器
父类的构造器不可被子类继承
关于构造器里调用构造器可以翻看我发布的java之this关键字