在JAVA中,给定如下代码,下面哪个可以作为该类的构造函数 ( )
public class Test {
}
public void Test() {?}
public Test() {?}
public static Test() {?}
public static void Test() {?}
构造函数的特点:
1.函数名与类名相同;
2.没有返回值,也没有返回值类型的声明;
3.加载类时,自动调用构造函数;
4。构造函数可以重载,在类的一个构造函数中可以通过this(实参)来调用自己其他的构造函数,必须在第一行,在一个构造函数中只能用this去调用一个其他的构造函数,此时应注意递归调用。调用构造函数时,具体调哪个,看参数,实参与形参匹配。
static静态属于类,构造函数属于对象
我们知道静态方法,静态块或变量属于该类。而构造函数属于该对象,并在使用 new 运算符创建实例时调用。由于构造函数不是类属性,因此有理由认为它不能是静态的。
静态块 / 方法无法访问非静态变量
我们知道静态方法不能访问非静态变量。静态块也是如此。
现在,构造函数的主要目的是初始化对象变量。因此,如果我们将构造函数设置为静态,则无法初始化对象变量。这将破坏使用创建对象的构造函数的全部目的。因此,使构造函数为非静态是合理的。
1.函数名与类名相同;
2.没有返回值,也没有返回值类型的声明;
3.加载类时,自动调用构造函数;
4。构造函数可以重载,在类的一个构造函数中可以通过this(实参)来调用自己其他的构造函数,必须在第一行,在一个构造函数中只能用this去调用一个其他的构造函数,此时应注意递归调用。调用构造函数时,具体调哪个,看参数,实参与形参匹配。
static静态属于类,构造函数属于对象
我们知道静态方法,静态块或变量属于该类。而构造函数属于该对象,并在使用 new 运算符创建实例时调用。由于构造函数不是类属性,因此有理由认为它不能是静态的。
静态块 / 方法无法访问非静态变量
我们知道静态方法不能访问非静态变量。静态块也是如此。
现在,构造函数的主要目的是初始化对象变量。因此,如果我们将构造函数设置为静态,则无法初始化对象变量。这将破坏使用创建对象的构造函数的全部目的。因此,使构造函数为非静态是合理的。