Java构造函数
提示
- 构造器的基本概念:Java中的构造器是一个特殊的方法,用于在创建对象时初始化对象,名称与类名相同且没有返回类型。
- 构造器的类型与使用:Java支持无参构造器、带参数的构造器以及默认构造器(若未定义任何构造器,编译器自动生成)。
- 构造器重载:Java允许构造器重载,即一个类中可以有多个构造器,它们通过参数列表的不同进行区分。
什么是构造器?
Java 中的构造器类似于一个方法,当创建类的对象时,它会被调用。
与 Java 方法 不同,构造器与类名相同,没有任何返回类型。例如,
class Test {
Test() {
// 构造器体
}
}
这里,Test()
是一个构造器。它与类名相同且没有返回类型。
推荐阅读: 为什么构造器不返回值
示例 1:Java 构造器
class Main {
private String name;
// 构造器
Main() {
System.out.println("构造器被调用:");
name = "mashangxue123";
}
public static void main(String[] args) {
// 创建 Main 类对象时
// 调用构造器
Main obj = new Main();
System.out.println("名字是 " + obj.name);
}
}
输出:
构造器被调用:
名字是 mashangxue123
在上面的示例中,我们创建了一个名为 Main()
的构造器。在构造器内部,我们初始化了 name
变量的值。
注意创建 Main
类对象的语句。
Main obj = new Main();
这里,当对象被创建时,Main()
构造器被调用。并且,name
变量的值被初始化。
因此,程序打印出 name
变量的值,即 mashangxue123
。
构造器的类型
在 Java 中,构造器可以分为 3 种类型:
- 无参构造器
- 带参数的构造器
- 默认构造器
1. Java 无参构造器
与方法类似,Java 构造器可能有也可能没有任何参数(参数)。
如果构造器不 接受任何参数,则称为无参数构造器。例如,
private Constructor() {
// 构造器的体
}
示例 2:Java 私有无参构造器
class Main {
int i;
// 无参数的构造器
private Main() {
i = 5;
System.out.println("构造器被调用");
}
public static void main(String[] args) {
// 调用没有任何参数的构造器
Main obj = new Main();
System.out.println("i 的值: " + obj.i);
}
}
输出:
构造器被调用
i 的值: 5
在上面的示例中,我们创建了一个 Main()
构造器。这里,构造器不接受任何参数。因此,它被称为无参构造器。
注意我们将构造器声明为私有。
一旦构造器被声明为 private
,它就不能从类外部访问。因此,使用私有构造器从类外部创建对象是被禁止的。
这里,我们在同一个类内部创建对象。因此,程序能够访问到这个构造器。要了解更多,请访问 Java 实现私有构造器。
然而,如果我们想要在类外部创建对象,那么我们需要将构造器声明为 public
。
示例 3:Java 公共无参构造器
class Company {
String name;
// 公共构造器
public Company() {
name = "mashangxue123";
}
}
class Main {
public static void main(String[] args) {
// 在另一个类中创建对象
Company obj = new Company();
System.out.println("公司名称 = " + obj.name);
}
}
输出:
公司名称 = mashangxue123
推荐阅读: Java 访问修饰符