今天主要来说说构造函数。
构造函数:构建创造对象时调用的函数。
作用:可以给对象进行初始化
值得注意的是,创建对象都必须要通过构造函数初始化
但是有时候我们并没有看到有构造函数,这是因为一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数。如果我们在类中定义了指定的构造函数,那么类中的默认构造函数就没有了。
一般函数和构造函数什么区别呢?
构造函数:对象创建时,就会调用与之对应的构造函数,对对象进行初始化。
一般函数:对象创建后,需要函数功能时才调用。
构造函数:对象创建时,会调用只调用一次。
一般函数:对象创建后,可以被调用多次。
什么时候定义构造函数呢?
在描述事物时,该事物一存在就具备的一些内容,这些内容都定义在构造函数中。 构造函数可以有多个,用于对不同的对象进行针对性的初始化。
多个构造函数在类中是以重载的形式来体现的。
注意:
- 构造函数如果完成了set功能。set方法是否需要。
- 一般函数不能直接调用构造函数。
- 构造函数如果前面加了void就变成了一般函数。
- 构造函数中是有return语句的。
下面举一个小例子:
package com.Tips;
class OperateTest {
public static String name;
public static int age;
//定义一个空参数的构造函数
OperateTest(){
name = "default";
age = 0;
System.out.println("person run");
}
//定义一个有name参数的构造函数
OperateTest(String n){
name = n;
}
//定义一个有完整参数的构造函数
OperateTest(String n,int a){
name = n;
age = a;
}
//输出构造结果
public static void speak(){
System.out.println(name+":"+age);
}
public static void main(String[] args) {
//实例化P1并进行构造函数的调用
OperateTest p1 = new OperateTest("xiaoming");
p1.speak();
//实例化P2并进行构造函数的调用
OperateTest p2 = new OperateTest("lihua",20);
p2.speak();
}
}