一、概述
构造方法也叫构造器、构造函数,作用是在创建对象的时候给成员变量进行初始化的
之前写的 Student s = new Student(); 调用的就是系统默认提供的无参的构造方法
默认的无参构造方法如下:
public Student() {
}
二、构造方法的格式
public class Student{
修饰符 类名(参数){
方法体
}
}
特点:
1、方法名和类名相同,大小写也要一致
2、没有返回值类型,连void都没有
3、没有具体的返回值(不能由return带回结果数据)
执行时机:
1、创建对象的时候由虚拟机调用,不能手动调用构造方法
2、每创建一次对象,就会调用一次构造方法
三、注意事项:
1、构造方法的定义:
①如果没有定义构造方法,系统将给出一个默认的无参数构造方法
②如果定义了构造方法,系统将不再提供默认的构造方法
2、构造方法的重载:
带参构造方法和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载
3、推荐的使用方式:
无论是否使用,都手动书写无参数的构造方法,和带全部参数的构造方法
案例:标准类制作
1、成员变量:使用private修饰
2、构造方法:提供一个无参构造方法
提供一个带多个参数的构造方法
3、成员方法:提供每一个成员变量对应的setXxx()/getXxx()
提供一个显示对象信息的show()
4、创建对象并为其成员变量赋值的两种方式
无参构造方法创建对象后使用setXxx()赋值
使用带参构造方法直接创建带有属性值的对象
Student类
package constructor;
public class Student2 {
private String name;
private int age;
//无参
public Student2() {
}
//有参
public Student2(String name, int age) {
this.name = name;
this.age = age;
}
//set和get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void show(){
System.out.println(name+".."+age);
}
}
Student测试类
package constructor;
public class Student2Test {
public static void main(String[] args) {
//无参数构造方法创建对象,通过set方法赋值
Student2 stu1 = new Student2();
stu1.setName("李四");
stu1.setAge(18);
stu1.show();
//通过带参数构造方法,直接给属性赋值
Student2 stu2 = new Student2("王五", 20);
stu2.show();
}
}