要谈及构造方法,就先要谈及方法,那么什么是方法呢?
方法的定义
方法:用来描述该类实物共有的一些行为。 可以分为成员方法和静态方法。
成员方法:没有用static修饰的方法(实例方法,对象方法)。
静态方法:用static修饰的方法(类方法),可以直接通过类名直接调用。
注意:如果一个方法的返回值类型是void表示该方法没有返回值
构造方法(构造器)定义
构造方法和构造器只是翻译上的差异,实际上是同一个事物。
构造方法是一种特殊的成员方法。可以分为有参构造方法和无参构造方法。
无参构造方法:根据成员变量类型将成员变量初始化为null或0或false。
有参构造方法:将成员变量进行初始化并赋值(这里指的是通过形参传进来的实参)。
构造方法的特点:
1.构造方法方法名和类名一致,没有返回值,但不能声明void,一旦声明void,系统默认将不是构造方法。
2.可以设置关键字来控制其访问权限,但是一般情况下使用public方法权限。在默认情况下,如果不写任何关键字,其访问
权限也是public。.
3.系统会默认生成一个无参的构造方法。如果我们自己定义了一个构造方法(无参或者有参),原来默认的无参构造方法就
不存在了(系统默认新定义的构造方法覆盖了默认的无参构造)。
4.创建子类对象会调用父类构造方法但不会创建父类对象,只是调用父类构造方法初始化父类成员属性。
构造方法的作用:
在实例化对象时给对象属性赋值,即初始化成员属性而不是初始化对象。
解释:实例化类之后(类实例化通过new关键字实现)才能调用类内部的属性,而在实例化类之前,系统需要给类属性分配内存
进行存储。即在new将对象的引用返回之前初始化对象属性。
在这里就引申到另一个问题,构造方法有什么其他作用?
当几个变量要实现同样的功能,但是仅仅参数类型不同时,我们仅仅只需要调用不同参数的构造方法就行,不需要新定义
一个其他的方法。即:在构造方法对类进行构造的时候,只需要将功能类似的,但形参不同的方法直接打包在该类下,当
我们根据需要调用的时候,直接重载构造器中的需要的方法。
方法的重载具体参照https://blog.csdn.net/HY845638534/article/details/84112833
构造方法的使用:
1.在关键字new后面,类名+(),小括号内加上实参;
类名 变量=new 类名(参数1,参数2);
注意:此处的参数为实参,即需要传进去的参数。如果调用无参构造方法,则不需要填写参数。如果调用了参数则必须和
需要调用的构造方法参数(形参)参数列表相同,即类型相同,个数形同,类型顺序相同。
2.跟在关键字super或this后加小括号() ,小括号内加上实参;
public SalesEmployee(int id,double sales){
super(id,"");//这里使用了Spuer(),""也为实参,必须写。
}
这里使用了Spuer(),继承了父类中的
public Employee(int id ,String name){
this.id=id;
this.name=name;
}
this的使用则是
public Employee(int id ,String name ,double money){
this(id,name);
this.id=id;
this.name=name;
this.money=money;
}
这里this()括号里面的参数是构造方法中的形参,必须名字和顺序相同,则会直接先行去实现this调用的构造方法。用在本类中。
具体的spuer使用参考https://blog.csdn.net/HY845638534/article/details/84112861