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