1、作用
完成对对象中的属性赋值
2、构造方法
构造方法是一种特殊的方法,构造方法名字必须与类名一致,构造方法必须没有返回类型,不编写返回类型
语法格式:
public 方法名称([参数列表]){
}
public class Dog {
//无参构造方法
public Dog() {
//完成对品种、颜色、姓名、年龄、性别
strain = "哈士奇";//品种
color = "黑白";//颜色
name = "二哈";//姓名
age = 5;//年龄
sex = "公";//性别
}
//成员变量
String strain;//品种
String color;//颜色
String name;//姓名
int age;//年龄
String sex;//性别
//输出方法
public void print() {
System.out.println("品种:" + strain);
System.out.println("颜色:" + color);
System.out.println("名字:" + name);
System.out.println("年龄:" + age);
System.out.println("性别:" + sex);
}
}
3、构造方法如何执行
当创建对象时自动执行相匹配的构造方法
public class DogTest {
public static void main(String[] args) {
Dog dog = new Dog();
dog.print();
}
}
结果为:
4、创建带参构造方法
public class Dog {
//无参构造方法
public Dog() {
//完成对品种、颜色、姓名、年龄、性别
strain = "哈士奇";//品种
color = "黑白";//颜色
name = "二哈";//姓名
age = 5;//年龄
sex = "公";//性别
}
//带参构造方法
public Dog(String strain,String color,String name) {
//完成对品种、颜色、姓名的赋值
//局部变量的值赋值给成员变量
this.strain = strain;//品种
this.color = color;//颜色
this.name = name;//姓名
}
//成员变量
String strain;//品种
String color;//颜色
String name;//姓名
int age;//年龄
String sex;//性别
//输出方法
public void print() {
System.out.println("品种:" + strain);
System.out.println("颜色:" + color);
System.out.println("名字:" + name);
System.out.println("年龄:" + age);
System.out.println("性别:" + sex);
}
}
public class DogTest {
public static void main(String[] args) {
Dog dog = new Dog();
dog.print();
System.out.println("分界线-------------------------------");
//创建Dog对象,带三个参数的构造方法
Dog dog02 = new Dog("中华田园犬","黄","阿黄");
dog02.print();
}
}
输出结果:
5、创建对象的同时完成所有属性的赋值
public class Dog {
//无参构造方法
public Dog() {
//完成对品种、颜色、姓名、年龄、性别
strain = "哈士奇";//品种
color = "黑白";//颜色
name = "二哈";//姓名
age = 5;//年龄
sex = "公";//性别
}
//带参构造方法
public Dog(String strain,String color,String name) {
//完成对品种、颜色、姓名、年龄、性别的赋值
//局部变量的值赋值给成员变量
this.strain = strain;//品种
this.color = color;//颜色
this.name = name;//姓名
}
//创建对所有属性赋值的构造方法
public Dog(String strain,String color,String name,int age,String sex) {
//局部变量的值赋值给成员变量
this.strain = strain;//品种
this.color = color;//颜色
this.name = name;//姓名
this.age = age;//年龄
this.sex = sex;//性别
}
//成员变量
String strain;//品种
String color;//颜色
String name;//姓名
int age;//年龄
String sex;//性别
//输出方法
public void print() {
System.out.println("品种:" + strain);
System.out.println("颜色:" + color);
System.out.println("名字:" + name);
System.out.println("年龄:" + age);
System.out.println("性别:" + sex);
}
}
public class DogTest {
public static void main(String[] args) {
Dog dog = new Dog();
dog.print();
System.out.println("分界线-------------------------------");
//创建Dog对象,带三个参数的构造方法
Dog dog02 = new Dog("中华田园犬","黄","阿黄");
dog02.print();
System.out.println("分界线-------------------------------");
//创建Dog对象,对所有属性赋值的构造方法
Dog dog03 = new Dog("泰迪","棕色","小迪",5,"公");
dog03.print();
}
}
输出结果为:
6、构造方法的重载
构造方法分类:
隐式构造方法:当一个类中,没有手动编写的构造方法,则系统会提供一个默认的无参的构造方法
显示构造方法:当在一个类中,手动编写构造方法,则系统回话提供默认的无参的构造方法
当手动编写构造方法时,建议先编写无参构造方法,然后再编写需要的构造方法
构造方法重载:
在同一个类中,构造方法的名字必须相同,参数列表不同(个数不同、类型不同、顺序不同)
//无参构造方法
public Dog() {
//完成对品种、颜色、姓名、年龄、性别
strain = "哈士奇";//品种
color = "黑白";//颜色
name = "二哈";//姓名
age = 5;//年龄
sex = "公";//性别
}
//带参构造方法
public Dog(String strain,String color,String name) {
//完成对品种、颜色、姓名、年龄、性别的赋值
//局部变量的值赋值给成员变量
this.strain = strain;//品种
this.color = color;//颜色
this.name = name;//姓名
}
//创建对所有属性赋值的构造方法
public Dog(String strain,String color,String name,int age,String sex) {
//局部变量的值赋值给成员变量
this.strain = strain;//品种
this.color = color;//颜色
this.name = name;//姓名
this.age = age;//年龄
this.sex = sex;//性别
}