- Java中构造方法的含义:一个与当前类同名的方法称为构造方法
- 特点:
-
与当前类同名
-
没有返回值(也没有void)
-
不能加void定义类型,它的返回值与void不同,若用void定义类型,则系统不会将其认定为构造方法
-
其中不能使用return语句返回任何值
-
一旦自定义构造方法后,系统将不再自动生成无参数的构造方法(总建议同时自定义有参和空参的构造)
class per {
private String name; //封装
private int age;
//构造方法
public per() { //空参构造 构造名和类名相同 per
}
public per(String name,int age) { //有参构造
this.name=name;
this.age=age;
//无return 构造方法中自带return
}
//set()
public void setname() { //设置姓名
this.name=name;
}
public String getname() { //获得姓名
return name;
}
public void setage() { //设置年龄
this.age=age;
}
public int getage() { //获得年龄
return age;
}
}
- 关于set函数和get函数:为了使得成员变量更为安全,不在其他类中被更改,将成员变量进行了封装,set函数用来更改成员变量,get函数用来获得成员变量
- 构造方法的作用:在类的实例对象刚产生时,该类中的构造方法将会被自动调用,我们可以在构造方法中加入需要完成初始化工作的代码
- 测试代码
public class arr2_student_test {
public static void main(String[] args) {
students a=new students("王清杉",22); //创建对象(初始化),同时自动调用构造方法
a.setname("清杉夫人"); //修改成员变量
a.setage(21);
System.out.println(a.getname()+"..."+a.getage()); //输出
}
}
class students { //创建类
private String name; //定义成员变量
private int age;
//构造方法
public students() { //空参构造(构造名和类名相同),自定义构造方法以后,系统不再自动生成空参构造
}
public students(String name,int age) { //有参构造(构造名和类名相同)
this.name=name;
this.age=age;
}
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;
}
}
- 运行结果
- 创建对象时构造方法的自动调用
为了体现构造方法的自动调用,我们对代码进行了修改,更清晰
class students {
private String name;
private int age;
//构造方法
public students() { //空参构造(构造名和类名相同)
}
public students(String name,int age) { //有参构造(构造名和类名相同)
System.out.println("Hello World !");
this.name=name;
this.age=age;
}
- 运行结果