构造方法的懂得

构造方法的理解
1.构造方法是什么?
  Java的方法大致可以分为三种,普通方法,抽象方法和构造方法。在Java中,任何变量在被使用前都必须先设置初值.而构造方法是Java提供给为类的成员变量赋初值的专门方法。又可以说构造方法就是类构造对象时调用的方法,用于对象的初始化工作。每一个类都有一个构造方法,也可以称为构造器,在没有对构造方法重载之前都是默认无参的构造方法。
这时便要说说构造方法的格式与普通方法的区别了:
  限定符+类名+()+{}
1)限定符和方法的一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。
2)构造方法的方法名和类名一样。
3)方法能返回任何类型的值或者无返回值(void),构造器没有返回值,也不需要void。
4)并且与普通方法不同的是构造方法只能在构造对象时调用,普通方法在类中也可以自己调用。
5)"()"中是写上构造方法的形参,一般是默认的无参。
2.构造方法的重载
  当对一个类写了一个有参的构造方法就意味着对构造方法的重载,这时是对默认无参的构造方法的重载,重载之后,默认的构造方法就没有了。
  在重载是必须要有形参的改变:形参的数据类型,数量,顺序。
  在讲构造方法的重载时就必须提一提this关键字在构造方法中的使用了。this关键字在重载时一般有两种用法:
1)区分自身属性和形参.  this指代当前对象
2)调用自身其他的构造器,调用构造器的语句只能写在第一行
  
例:
package Lesson3 ;
public class Student{
  private String name;
  public Student(String name){
  this.name = name;
  }
  public Student(){
  this("李四");
  }
}
public static void main (String args[]){
  Student stu1 = new Student("张三");
  Student stu2 = new Student();
  System.out.println(stu1.name + "----" + stu2.name);
}
在上面的代码中, 有2个不同参数列表的构造器。第一个构造器,给类的成员name赋值,this关键字在这里是为了区分自身属性和形参。第二个构造器,调用第一个构造器,给成员变量name一个初始值 "李四",this关键字在这里是为了调用第一个构造器。
这时便有两种构造器了,一种有参的,一种无参的,在执行实例化对象时,stu1调用了有参的构造器,stu2调用无参的构造器,输出name时stu1是张三,stu2是李四。
  这些便是我对构造方法的理解了。