---------------------- android培训、java培训、期待与您交流! ----------------------
黑马程序员-构造函数应用方法
构造函数
构造函数的作用:
用于给给定对象初始化。
用法:
在分析事物时,该事物存在具备一些特性或行为,那么将内容定义为构造函数。
class Zi
{
Zi()
{
System.out.println("Zi run");
}
}
构造函数的特点:
1.函数名与类名相同。
2.不可以定义返回值类型。
3.不可以写return语句。
构造函数与一般函数的区别:
1.构造函数和一般函数在写法上不同。
2.构造函数和一般函数在运行上不同。
构造函数是在对象已建立就运行,给对象初始化,而一般函数是对象调用才执行,是给对象添加对象具备的功能的。
一个对象建立,构造函数只运行一次,而一般方法可以被对象调用多次。
构造代码快
作用:
用于对对象初始化。
写法:
用单独的花括号块表示。
{
System.out.println("Zi run");
}
特点:
对象一建立就运行,而且优先于构造函数执行。
与构造函数的区别:
构造代码块是给所有的对象进行同意的初始化。
而构造函数是给对应的对象初始化。
子父类中构造函数的特点
当对子类对象进行初始化时,父类的构造函数也运行,那是因为子类的构造函数默认第一行有一条隐式语句:super();会访问父类中空参数的构造函数,而且子类中所有的构造函数第一行都有super();
那么为什么一定要访问父类的构造函数呢,那是因为父类中的数据子类可以直接访问,所以子类建立对象时,需要先查看父类是如何进行初始化的,所以先要访问父类。
如果需要访问父类中指定的构造函数,可以进行手动定义super()进行指定。
当父类中没有空参数的构造函数时,子类必须手动设置super()。
子类中至少有一个构造函数访问父类构造函数,也可以手动指定访问本类中构造函数,使用this()。
class Fu //extends Object
{
Fu()
{
//super();
System.out.println("fu run");
}
}
class Zi extends Fu
{
Zi()
{
//super();
System.out.println("Zi run");
}
}
class Demo
{
public static void main(String[] args)
{
Zi z = new Zi();
}
}
子类的实例化过程:
子类的所有构造函数默认都会访问父类中空参数构造函数。
因为子类每一个构造函数内的第一行都有一句隐式super();
当父类中没有空参数构造函数时,子类必须手动通过super()语句形式来指定要访问父类中构造函数。
当然:子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数。
子类中至少会有一个构造函数访问父类中构造函数。
---------------------- android培训、java培训、期待与您交流! ----------------------