构造方法
1.构造方法的名字必须和类名一致。
2.构造方法没有返回值。
3.当我们没有显示的定义一个构造方法时,系统会添加一个公共的不带参的方法。
4.在我们使用new创建对象是会调用构造方法。
5.构造方法的作用是为了初始化对象中的属性。
代码理解:
public class Student {
int id;
String name;
int age;
String sex;
//创建构造方法
public Student(int _id, String _name, int _age, String _sex) {
System.out.println("Student构造方法!!");
id = _id;
name = _name;
age = _age;
sex = _sex;
}
void eat() {
System.out.println(name + "吃炸鸡!!!");
}
}
测试类:
public class Test {
public static void main(String[] args) {
/*
* 1.在栈空间分配了一个空间s1
* 2.在堆空间分配了一个空间
* 2.1 在我们使用new分配空间时,就会调用构造方法
* 3.使用栈空间的变量(对象)指向堆空间分配的内存地址
* 4.同过对象给堆空间进行赋值
* */
Student stu = new Student(1, "黄蓉", 18, "女");
System.out.println(stu.id);
System.out.println(stu.name);
Student stu1 = new Student(2, "郭靖", 22, "男");
System.out.println(stu1.id);
System.out.println(stu1.name);
}
}
this
this : 当前类对象
* this.属性 : 当前类属性
* this.行为 : 调用当前类行为
* this():调用当前类的构造方法
* -使用this()调用当前类构造方法时,必须放到第一行
//创建一个教师类
public class Teacher{
private String name; //教师名称
private double salary; //工资
private int age; //年龄}
//创建构造方法,为上面的3个属性赋初始值 public Teacher(String name,double salary,int age) { this.name=name; //设置教师名称 this.salary=salary; //设置教师工资 this.age=age; //设置教师年龄 }
创建一个测试类
public class Test{
public static void main(String[] args){ Teacher teacher=new Teacher("王刚",5000.0,45); System.out.println("教师信息如下:"); System.out.println("教师名称:"+teacher.name+"\n教师工资:"+teacher.salary+"\n教师年龄:"+teacher.age); }
}
最后结果为:
教师信息如下: 教师名称:王刚 教师工资:5000.0 教师年龄:45