构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。
格式:
public 类名称(参数类型 参数名称){
方法体
}
注意事项
- 构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样
- 构造方法不要写返回值类型,连void都不写
- 构造方法不能return一个具体的返回值
- 如果没有编写任何构造方法,那么编译器将会默认赠送一个构造方法,没有参数、方法体什么事情都不做
public Student(){} - 一旦编写了至少一个构造方法,那么编译器将不再赠送
- 构造方法也是可以进行重载的
重载:方法名称相同,参数列表不同
Student.java
package cn.day02;
public class Student {
//成员变量
private String name;
private int age;
//无参数的构造方法
public Student() {
System.out.println("无参构造方法用来创建对象");
}
//全参数的构造方法
public Student(String name, int age) {
System.out.println("全参构造方法用来创建对象");
this.name = name;
this.age = age;
}
//Getter/Setter
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;
}
}
DemoStudent.java
package cn.day02;
public class DemoStudent {
public static void main(String[] args) {
Student stu1 = new Student();//new 对象(),就是在调用构造方法//无参构造
System.out.println("==============================");
Student stu2 = new Student("赵丽颖", 20);//全参构造
System.out.println("姓名: " + stu2.getName() + "年龄" + stu2.getAge());
//如果需要改变对象当中成员变量数据内容,仍然要使用setXxx方法
stu2.setAge(21);//改变内容
System.out.println("姓名: " + stu2.getName() + "年龄" + stu2.getAge());
}
}
Running results:
无参构造方法用来创建对象
==============================
全参构造方法用来创建对象
姓名: 赵丽颖年龄20
姓名: 赵丽颖年龄21