Java08-java语法基础(七)构造方法
一、构造方法
1、什么是构造方法?
构造方法(类方法)是一个方法名和类名相容的特殊的成员方法。
2、构造方法的作用?
当使用new关键字创建一个对象时,为新建对象在堆内存开辟一个空间之后,Java系统将自动调用构造方法初始化该新建对象。
3、对象初始化过程
二、构造方法的定义与调用
1、定义:
class 类名{
[访问权限] 类名(参数表){
语句体;
//构造方法没有返回值
}
}
2、调用:
类名 对象名 = new 构造方法名(实参表);
3、栈内存、堆内存
Person p1 = new Person();
上述语句中有两个对象:引用对象和内存对象
具体的存储方式如下图:
注:new运算符开辟的存储区都在堆内存中
三、构造方法:初始化对象
1、方法名必须和类名相同;
2、定义类时,若没有定义构造方法,java会自动生成一个无参的构造方法;若定义了构造方法,将会把自动生成的够造方法覆盖掉。
3、构造方法没有返回值,而普通的成员方法必须要有返回值类型;
4、构造方法只能用new运算符调用,不能用对象名调用;
四、构造方法的重载
1、方法重载:方法名相同,参数列表不同,实现的效果也不同;
2、构造方法的重载:给构造方法传递不同的参数,就能实现不同形式的初始化;
3、构造方法与普通方法的区别:构造方法是类的一种特殊方法,其特殊性如下:
(1)可以重载;
(2)方法名与类名相同;
(3)不能有返回值,不使用return语句;
(4)不能由编程人员显式的直接调用(即不能通过“对象名.方法名();”的方式调用),只能通过new操作符调用;
(5)缺省的空构造方法:在java语言中,每个类都至少有一个构造方法,如果累的定义者没有显式的定义任何构造方法,系统将自动提供一个缺省的构造方法;如果定义了一个或多个构造方法,系统将不再缺省。
4、构造方法与普通成员方法的区别?
(1)构造方法名与类名相同,成员方法自定义;
(2)构造方法没有返回值,即没有方法类型;
(3)构造方法由系统调用,用来实例化对象;