1.构造方法的作用:初始化对象

2.构造方法的形式:构造方法名与类名一致,

         没有返回值类型,没有void修饰,没有具体返回值

3.关于构造方法的注意事项:即便我们没有给出一个类的构造方法,系统也会自动给出一个无参的构造方法;若我们给出了构造方法,系统将不再提供默认的构造方法,即不管我们给出的是不带参数的构造方法还是带参数的构造方法,系统都不会给出构造方法,所以建议永远由我们自己定义构造方法。

4.拓展:给成员变量赋值的两种方式:

    (1)setXXX()方法;

      (2)  构造方法

代码解释:

class Student2{
    private String name;
    private int age;
    public Student2(){
        System.out.println("这是一个无参构造方法");
    }
    public Student2(String name){
        System.out.println("这是一个带有String型参数的构造方法");
        this.name=name;
    }
    public Student2(String name,int age){
        System.out.println("这是带有两个参数的构造方法");
        this.name=name;
        this.age=age;
    }
    public void show(){
        System.out.println(name+"-------"+age+"-------");
    }
}
public class ConstructDemo {
    public static void main(String[] args) {
        Student2 s21=new Student2();
        //s21.name="举例";
        System.out.println(s21);
        System.out.println("------------------");
        Student2 s22=new Student2("林青霞");//有一个小小的疑问,为什么这里name和age是private修饰,在其它类中还可以被访问
        s22.show();//思考上面两种调用name不同的模式,为什么s21.name这样的方式失败了
                   //这难道不就是封装的意义吗:变量私有化,提供公共的方法访问私有的变量
        Student2 s23=new Student2("林青霞",27);
        s23.show();
    }
}