构造方法的概述:
构造方法又叫构造器,构造函数。
作用:创建对象的时候给成员变量进行初始化。
public class StudentDemo{
public static void main(String []agrs){
Student s1=new Student();//先假设在另一个类中封装了Student();
}
}
在这个代码中因为构造方法可以看作创建对象的时候对成员变量的赋值,在创建对象s1的时候调用的Student()括号中啥也没有所以表示此时调用的是空参的构造方法,(有空参当然就有不是空参的,稍后介绍)
构造方法的格式:
//先封装一个Student类
public class Student{
修饰符 类名(参数){
方法体;
}
}
特点:
- 方法名和类名相同,(举个例子Student类中的构造方法的类名必须也是Student,在这里千万不要把构造方法和函数混为一谈)。
- 没有返回值类型void都没有
- 没有具体的返回值(不能有return)。
- 创建对象不能手动点用构造方法,每创建一次对象就会调用一次构造方法
空参构造
- 在这里如果创建对象的时候括号中啥也没有就是空参构造,不过我们没写构造方法为啥就能调用呢,是因为如果没写系统会自动创建。
- 如果创建构造方法系统就不会提供构造方法
- !!!如果定义了有参构造,但是调用的无参构造就会报错,此时需要再加上无参构造!!!
在这两个类中可以看到创建对象p1的时候调用构造方法了,所以结果肯定会输出“执行了”
有参构造:
可以在调用构造方法的同时就对成员变量赋值;
package pdsu_zjh;
import java.util.Scanner;
public class Persen {
private String sex;//性别
private String interest;
private String character;
//有参构造的构造方法
public Persen(String sex) {
this.sex=sex;
}
public void setsex(String sex) {
this.sex=sex;
}
public String putsex( )//因为返回一个字符串所以数据类型String,
{
return sex;//sex只能在这个类中调用
}
}
public class zjh {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner r=new Scanner(System.in);//输入操作,调用r;
Persen p1= new Persen("nan");//直接对成员变量进行赋值
System.out.println(p1.putsex());
}
}