2023-03-07 10:54来源:m.sf1369.com作者:宇宇
构造函数是一种特殊的方法,主要用来在创建对象时初始化对象,即为对象成员变量赋初始值。特别地,一个类可以有多个构造函,可根据其参数个数的不同或参数类型的不同来区分它们,即构造函数的重载。
说到构造函数,首先你要清楚函数有无参构造函数和有参的构造函数
函数用途1:
比如说一个Class类中有很多属性,你在测试类中要用到时,如果你只有一个无参的构造函数,那么你使用这个类的并且输出类的属性值的时候,你就需要new 一个对象 然后用对象.属性 给他赋值,但是如果你有一个带参数的构造函数 那么你在调用他的时候就只需要new一下的同时就给它赋值,
Class class=new Class(“属性值1”,“属性值2”);这样就可以了!方便了很多,这样就是初始化!
复制构造函数的作用就是使用一个已经存在的对象(由复制构造函数的参数制定),去初始化同类的一个新对象。
构造函数是类的一个特殊方法,这个方法用来生成实例时由系统自动调用,程序员无法直接调用。构造函数方法名同类名相同且参数为空。子类继承父类后默认继承父类的构造函数,即:子类存在隐含方法:super(),如果子类重写构造函数则子类也隐含调用super()。
如下例:
例一:
package sample;
public class A{
A(){
System.out.println(主类构造函数调用);
}
public static void main(String args[]){
A g=new A();
subA s=new subA();
}
}
class subA extends A{
}
执行结果为:
主类构造函数调用
主类构造函数调用
本例中子类subA中没有任何方法,所以隐含调用super(),super()指向A()。
例二:
package sample;
public class A{
A(){
System.out.println(主类构造函数调用);
}
public static void main(String args[]){
A g=new A();
subA s=new subA();
}
}
class subA extends A{
public subA(){
}
}
执行结果为:
主类构造函数调用
主类构造函数调用
本例中子类subA只有一个空方法suba()中没有任何方法,所以也隐含调用super(),super()指向A()。
例三:
package sample;
public class A{
A(){
System.out.println(主类构造函数调用);
}
public static void main(String args[]){
A g=new A();
subA s=new subA();
}
}
class subA extends A{
public subA(){
System.out.println(子类构造函数调用);
}
}
执行结果为:
主类构造函数调用
主类构造函数调用
子类构造函数调用
本例中子类subA的方法subA()虽然后输出但同上例中相同都为构造函数,所以也隐含调用super(),super()指向A()。