构造器会在对象创建的时候对其进行初始化。构造器的名字和类名相同,在句法上和方法非常相似,然而,构造器没有指明返回的类型。
通常,我们在构造器里对类里的定义的实例变量进行赋初始值,或者执行创建对象时需要执行的任何初始化过程。
不管你定义一个构造器或者不定义,所有的类都有构造器。这是因为如果不定义构造器的话,Java会自动创建一个构造器使所有的实例变量初始化为0。然而,一旦你手动定义了一个构造器,默认的构造器就不会被调用。
语法
下面代码是定义一个构造器的基本语法结构:
class ClassName {
ClassName() {
}
}
Java允许定义两种构造器,分别是:
- 无参构造器
- 带参构造器
无参构造器
正如名字所体现的那样,Java中的无参构造器不接受传入参数,这样一来,所有创建的对象的实例变量都会被初始化为固定的值。
例子
Public class MyClass {
Int num;
MyClass() {
num = 100;
}
}
通过下面的代码可以调用构造器来初始化对象:
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass();
MyClass t2 = new MyClass();
System.out.println(t1.num + " " + t2.num);
}
}
上面的代码的输出结果为:
100 100
带参构造器
大多数情况下,我们需要在对象初始化时赋上我们想要设置的值,这就需要有一个接收参数的构造器来使对象进行初始化。和方法中传入参数的写法一样,我们只要在构造器名字后面的括号里加上参数声明。
举个例子
下面是一个简单的带参构造器:
//一个简单的构造器例子
class MyClass {
int x;
//定义带参构造器
MyClass(int i ) {
x = i;
}
}
这样调用构造器来初始化对象:
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass( 10 );
MyClass t2 = new MyClass( 20 );
System.out.println(t1.x + " " + t2.x);
}
}
上面代码的输出为:
10 20
本篇小结
更多交流,欢迎加群(584017112):