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();
}
}