构造器
1.什么是构造器
在日常生活中,盖房子需要工具和工人,通过工人使用这些工具,来修建一个房子。在Java中,构造器就好比使用这些工具,来修建一个房子。而new关键字就是工人,通过new关键字和构造器结合创建对象。
1.1构造器的使用
构造器的语法
类的修饰符 类的名称(参数列表){
//方法体
}
构造器可以使用修饰符有public、protected、default、private,不写即为default类型的。
构造器的名称必须要和类的名称相同
不能有返回值,void也不行
构造器的参数可有可无。有一个也可以有多个参数
1.2被修饰的构造器
构造器是可以被修饰的,不同的修饰符修饰构造器也具有不同的效果
1.3构造器方法与普通方法的区别
构造器方法和普通的方法是有一定区别,主要是功能上、修饰符上、返回值上和命名上有本质的区别。区别如下:
构造器是为了创建一个类的对象实例,也可以在创建对象的时候使用。
方法是为了执行相应的方法体。即Java代码。
构造器可以被修饰为public、protected、default、private类型,但不能修饰为abstract、final、native、static、synchronized
方法可以修饰为除了protected、native外的修饰符。
构造器没有返回值也没有void。
方法没有返回值或有任何类型的返回值。
构造器的名称要和类的名称相同。
方法的名称可以任意起,但要注意标识符的命名规则。使其更具有意义。
2.如何实例化一个对象
所谓实例化就是在内存中实实在在的创建一个对象,在日常生活中就好比创造了一个东西出来。而在Java中,实例化一个对象用new关键字来完成。下面先介绍new关键字的语法以及通过一个例子来演示。
new 构造器的名称(参数列表)
new为Java关键字要注意大小写。
构造器的名称要和类的名称相同。
通过调用构造器方法来对这个对象进行一些必要的初始化。
用new关键字实例化对象后返回该对象的引用。
3.构造器的调用
构造器的调用一般有两种情况,一般在本类里调用活在同包下的另一个类中调用,另一种情况是子类调用父类的构造器
3.1父子类间的构造器的调用流程
详细的步骤如下所述。
在用new关键字创建对象aceing的时候。执行new aceing()会进入到aceing对象的构造器方法体内。
因为继承的关系,会默认调用方法super进入到父类bike对象的构造器方法体内。
对父类bike对象进行初始化。父类的构造器方法执行完毕后回到子类的构造器继续执行。
执行子类的构造器方法,并初始化数据。
3.2如何自定义构造器
自定义的构造器已在前面的代码中多次使用。所谓自定义构造器就是不显式的定义构造器,编译器就是自动地生成一个无参的构造器,但是一旦显式的定义了一个构造器的话,编译器就不会自动生成了。下面用代码演示如何自定义构造器。
public class test
{
//定义一个无参的构造器
public test()
{
//该构造器的方法体
}
//具有两个参数的构造器
public test(String i, int n)
{
//该构造器的方法体
}
}
4.什么是单例模式
单例模式是Java模式工厂里的一种,所谓单例模式,就是在一个时间段内对象只存在一份。单例模式就是把构造器修饰为private类型的,用一个public类型的方法返回该对象的引用。
5.构造器在程序中是何时运行的
加载要创建该对象的父类,以及成员变量和其他继承关系。
加载该类的静态块和静态成员变量,并对其进行初始化等操作。
静态块和静态成员变量加载完毕后创建对象并加载非静态成员变量,并对其进行初始化等操作。
执行构造器里的方法体,完成后该类的对象创建完毕。
父类的运行顺序和该类的顺序是一样的。