1.构造方法的作用概述:给对象的数据进行初始化
2.构造方法的格式
方法名与类名相同
没有返回值类型,连void都没有
没有具体的返回值
3.构造方法注意事项
1)如果你不提供构造方法,系统会给出默认构造方法
(这就是为什么我们在之前从来没写过构造方法,但是我们依旧可以创建对象的原因)
2)如果你提供了构造方法,系统将不再给出
3)构造方法也是可以重载的
class Student{
private String name;
private int age;
//定义一个构造方法
Student(){
System.out.println("这是一个构造方法");
}
}
public class StudentDemo1 {
public static void main(String[] args) {
//创建Student类的对象
//调用的是无参构造方法创建对象
Student s1 = new Student();
Student s2 = new Student();
}
}
class Construction1 {
private String name;
private int age;
Construction1() {
System.out.println("这是我们自己提供的无参构造方法");
}
Construction1(String name) {
System.out.println("这是我们提供的带参数name的构造方法");
this.name = name;
}
Construction1(int age) {
System.out.println("这是我们提供的带参数age的构造方法");
this.age = age;
}
Construction1(String name, int age) {
System.out.println("这是我们提供的带参数name、age的构造方法");
this.name = name;
this.age = age;
}
public void show() {
System.out.println(name + "----" + age);
}
}
public class ConstructionDemo1 {
public static void main(String[] args) {
//使用带两个参数name、age的构造方法来创建对象
Construction1 c4 = new Construction1("小宇", 18);
c4.show();
}
}
4.给成员变量赋值的方法
1)使用setXxx(...)给私有成员变量赋值
2)使用带参数的构造方法给私有的成员变量赋值,这里需要与this关键字配合使用
5.规范定义一个类的标准版本3.0
1)成员变量:被private修饰
2)构造方法:无参构造方法和有参构造方法
3)成员方法:getXxx()和setXxx()
4)show():打印所有的成员变量值
class Teacher {
private String name;
private int age;
//构造方法
Teacher() {
}
Teacher(String name, int age) {
this.name = name;
this.age = age;
}
//getXxx()
public String getName() {
return name;
}
public int getAge() {
return age;
}
//setXxx()
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
//show()
public void show() {
System.out.println(name + "----" + age);
}
}
public class TeacherDemo {
public static void main(String[] args) {
//使用无参构造方法创建对象,使用setXxx()对成员变量进行赋值
//开发使用这种方法
Teacher t1 = new Teacher();
t1.setName("小王");
t1.setAge(18);
t1.show();
//使用带参数的构造方法创建对象并给成员变量进行赋值
//上课使用这种方法
Teacher t2 = new Teacher("小宋", 19);
t2.show();
}
}