构造方法是一种特殊的方法。其主要功能是用来在创建对象时初始化对象,即为对象成员变量附初始值
构造函数与类名相同,可重载多个不同的构造函数
class Animal {
String name;
String kind;
int age;
String color;
long animalID;
String date;
public Animal(String name, String kind) {
this.name = name;
this.kind = kind;
}
public Animal(String name, String color, String kind) {
this.name = name;
this.color = color;
this.kind = kind;
}
public Animal(String name, int age, long animalID) {
this.age = age;
this.animalID = animalID;
}
public String play(Animal dog, Animal cat) {//形参dog 实参为cat. 形参cat 实参为dog
System.out.println("这只" + dog.color + "是" + dog.name + "," + dog.kind + ",正在和那只" + cat.color + "叫做" + cat.name
+ "," + cat.kind + ",在打架");
return cat.kind;
}
}public class Test {
public static void main(String[] args) {
Animal dog = new Animal("小黑", "小猫", "黑色");
Animal cat = new Animal("小白", "小狗", "白色");
String s = dog.play(cat, dog);
System.out.println("获胜的动物是" + s);
}
}
这是一段构造方法的代码,很绕很绕,重点在于懂得分辨实参和形参,参数对应有先后顺序,
public String play(Animal dog, Animal cat) {
System.out.println("这只" + dog.color + "是" + dog.name + "," + dog.kind + ",正在和那只" + cat.color + "叫做" + cat.name
+ "," + cat.kind + ",在打架");
return cat.kind;
}和
String s = dog.play(cat, dog),Animal dog和Animal cat 只是形参,cat,dog是实参。
dog.color实际上是cat.color ,dog.name实际是cat.name,dog.kind实际是cat.kind 之后的也是如此,这段代码考验了我们分辨参数。