1、java中类的构造器是什么:它是一个方法
2、它有什么作用:它用于类的实例化对象的初始化
3、我们用代码来说明它是怎么一回事儿:
(1)、我们先来创建一个main类,在他里面用于实现其他类的实例化以及方法属性的调用。
public class Main {
public static void main(String[] args) {
}
}
(2)、我们都知道,类是对一类事物的抽象,抽象出他们所具有的共同属性和方法,这里我们抽象出来一个动物类,动物有很多,动物的名字,颜色等这些都是动物都有的特点(属性),会叫,会跑,会吃饭,这些是动物所具有的行为(方法)。接下来我们定义一个动物类:
public class Cat {
private String name;
private String color;
public void eat(){
System.out.println("动物都会吃饭");
}
public void shout(){
System.out.println("动物都会叫");
}
}
(3)、定义完这两个类之后呢,我们在Main类中,去实例化Cat这个类的对象,这里我们要注意,当我们通过new关键字,实例化类对象的时候,我们就调用了一个构造器,虽然代码中我们没写,但是系统会自动的调用一个隐式的构造方法。具体如下:
上面这个图呢,我们把系统默认的那个构造方法给写了出来用于测试,我们可以看出,当我们实例化类Cat的时候,我们只是实例化了一个对象,并没有执行任何操作,系统这时会自动调用构造方法Cat这个方法,然后执行它的方法体,输出了我们自己定义的那句话。
(4)总结系统默认的构造方法的特点:①方法名没有返回值类型,其修饰符只有public。
②方法名和我们定义的这个类名是相同的。
③方法中没有任何内容,他只是用于初始化类的实例化对 象。
4、java构造方法中能不能做一些工作呢,当然能,我们可以通过构造方法对当前类所拥有的属性进行赋值
(1)、如果我们想要通过一个方法,对属性赋值的话,那么我们需要在这个方法里传入属性参数,代码如下:
public Cat(String name,String color){
this.name=name;
this.color=color;
}
以上这个方法是定义在类Cat中的方法,它是一个带有参数的构造方法。
(2)定义完带有参数的构造方法之后,我们如何去用它呢,代码如下:
我们在Main类中去实例化Cat这个类的一个对象,在实例化的时候呢,我们可以对Cat当前所具有的属性进行初始化,具体对哪个属性进行初始化,那要看我们在带有参数的构造方法中,都给他了哪几个属性参数。
Cat cat1=new Cat("Black Cat","黑色");
这一行代码括号里面的东西,就是对我们在带有参数的构造方法属性进行赋值。
(3)我们对刚才实例化对象之后的结果进行打印输出,代码如下:
在Cat这个类里面声明一个方法,用于打印输出我们刚才对属性的初始化
public void getName(){
System.out.println("这只猫叫做:"+this.name+",它的颜色是:"+this.color);
}
然后在Main类中,通过我们实例化的对象cat1.getName调用上面这个方法,代码如下:
cat1.getName();
运行结果如下图所示:
完整代码如下:
(4)从代码中我们可以看到我们在Cat这个类中定义了一个无参的构造方法,还有一个带有两个参数的构造方法,那如果我们把无参的构造方法删除之后,有参构造方法还会执行吗。程序会执行,但是会有警告,这告诉我们,在定义有参构造方法的时候,必须要显式的定义出无参构造方法。