由来
我们发现我们new完对象时,所有成员变量都是默认值,如果我们需要赋别的值,需要挨个为它们再赋值,太麻烦了。我们能不能在new对象时,直接为当前对象的某个或所有成员变量直接赋值呢。可以,Java给我们提供了构造器。
构造器的作用
- 在创建对象的时候为实例变量赋初始值。 构造器只为实例变量初始化,不为静态类变量初始化
 
构造器的语法格式
构造器又称为构造方法,那是因为它长的很像方法。但是和方法还有有所区别的。

示例代码
public class Student {
    private String name;
    private int age;
    // 无参构造
    public Student() {
    }
    // 有参构造
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //类中的其他代码
} 
注意事项:
- 构造器名必须与它所在的类名必须相同。
 - 它没有返回值,所以不需要返回值类型,甚至不需要void
 - 如果你不提供构造器,系统会给出无参数构造器,并且该构造器的修饰符默认与类的修饰符相同
 - 如果你提供了构造器,系统将不再提供无参数构造器,除非你自己定义。
 - 构造器是可以重载的,既可以定义参数,也可以不定义参数。
 - 构造器的修饰符只能是权限修饰符,不能被其他任何修饰
 
标准JavaBean
JavaBean是 Java语言编写类的一种标准规范。符合JavaBean 的类,要求:
- 类必须是具体的和公共的,
 - 并且具有无参数的构造方法,
 - 成员变量私有化,并提供用来操作成员变量的set 和get方法。
 - 其他要求...
 
格式:
public class ClassName{
  //私有化成员变量
    
  //无参构造方法【必须】
  //有参构造方法【建议】
  	
  //getXxx()
  //setXxx()
  //其他成员方法
    
} 
代码示例
public class Student {
    // 成员变量
    private String name;
    private int age;
    // 构造方法
    public Student() {
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    // get/set成员方法
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getAge() {
        return age;
    }
    //其他成员方法列表
    public String getInfo() {
        return "姓名:" + name + ",年龄:" + age;
    }
}
 
测试类,代码如下:
public class Test {
    public static void main(String[] args) {
        // 无参构造使用
        Student s = new Student();
        s.setName("张三");
        s.setAge(18);
        System.out.println(s.getName() + "---" + s.getAge());
        System.out.println(s.getInfo());
        // 带参构造使用
        Student s2 = new Student("李四", 118);
        System.out.println(s2.getName() + "---" + s2.getAge());
        System.out.println(s2.getInfo());
    }
}
 
                


















