我们首先要知道什么是构造函数详细请参考笔记内容
接下来要知道this到底指向哪里,笔记中已注明
以下是源代码
创建一个dog类
public class Dog {
public static void main(String[] args) {
Dogzl dog = new Dogzl();
//这一步叫做构造器,我调用的是下面的类Dogzl中的无参构造方法。
//这里有一步需要注意,如果类中没有Dogzl()方法,
// 那么将自动创建 public Dogzl(){}无参构造方法。
//如果有构造方法,将直接调用该构造方法。同时此处需要赋值
// Dogzl dog = new Dogzl("小花",13);
//如果同时有一个无参构造方法,一个有参构造方法,与方法重载相同,可以根据传入的数值自动选择调用哪个方法。
dog.dog1("旺财",12);
dog.dog2("葡萄",18);
System.out.println(dog.name+dog.age);//输出:葡萄18
//这一步我针对同一个dog对象,传入不同的数值,发现输出的数值将被替换。
//如果想要传入两条狗,则需要new一个新对象dog1。
//如下
Dogzl dog1 = new Dogzl();
dog1.dog1("叮当",14);
System.out.println(dog1.name+dog1.age);
// System.out.println(dog.age);
}
}
创建一个Dogzl类
class Dogzl{
String name;
int age;
public Dogzl(){
}
// 这里是Dogzl的无参构造方法
public Dogzl(String name,int age) {
this.name = name;
this.age = age;
}
//这里是有参构造方法,上面写的(String name,int age)就是用来传参数的。
public void dog1(String name,int age){
this.name = name;
this.age = age;
}
public void dog2(String name,int age){
this.name = name;
this.age = age;
}
}