Episode-4 使用构造器初始化变量
欢迎来到Java编程的世界!在上一篇文章中,我们研究了如何创建一个对象,但我们的对象没有属性,只能完成一些简单的输入输出。如果想要创建更高级的对象,就要学习使用构造器。
本期学习所需的前置知识
- 对Java的编译运行机制有一定的了解
- 知道如何调用对象的构造器来初始化对象
- 了解构造器重载的定义
什么是构造器?
在学习Java的过程中,你会发现构造器是一个非常重要的概念,因此我们需要掌握如何正确地使用构造器。
首先,让我们了解一下什么是构造器。在Java中,构造器是一种特殊的方法,用于创建对象并初始化对象的状态。构造器的名称与类名相同,且没有返回类型。构造器的主要任务是初始化对象的实例变量,这样对象就能够在创建后立即使用。
Java中有两种类型的构造器:默认构造器和自定义构造器。默认构造器是在没有定义构造器时由编译器自动生成的,它没有参数并且不执行任何操作。自定义构造器是由你自己编写的,可以接受一个或多个参数,并在对象创建时执行特定的操作。
通过具体的例子来认识构造器
让我们来看一个简单的示例,以便更好地理解构造器的使用。假设我们有一个名为“Person”的类,该类有两个实例变量:name和age。下面是一个使用自定义构造器的示例:
public class Person {
private String name;
private int age;
public Person(String n, int a) {
name = n;
age = a;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
在这个示例中,我们定义了一个带有两个参数的构造器,它可以接受一个字符串和一个整数,并将它们分别分配给name和age实例变量。接下来,我们定义了两个访问器方法getName和getAge,用于返回对象的name和age实例变量。
以最近的动画电影《玲芽之旅》的女主角为例,让我们来创建一个名叫Suzume的17岁的对象:
public class Suzume{
public static void main(String[] args){
Person Suzume = new Person("Suzume", 17);
System.out.println("Name: " + Suzume.getName());
System.out.println("Age: " + Suzume.getAge());
}
}
将上述代码编译运行,可以看到输出了如下结果:
在这个示例中,我们创建了一个名为“Suzume”的Person对象,年龄为17岁,并使用访问器方法输出了对象的name和age实例变量。
构造器重载——对不同输入的处理
在实际的使用中,我们有时候并不能完全获取一个人的所有信息,这个时候,就需要多定义几个构造器,以便对不同的输入进行处理。
比如说,我们想要再定义一个男主角sōta,但不知道sōta的年龄是多少岁,这个时候再使用原来的构造器的话,不能很好地创建男主的对象。
我们可以在原来的Person.java中添加一个新的构造器方法,且该方法只接受一个字符串。具体实现如下:
public class Person {
private String name;
private int age;
public Person(String n) {
name = n;
age = 0;
}
public Person(String n, int a) {
name = n;
age = a;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
在上面的示例中,我们添加了一个新的构造器方法,它只接受一个字符串,并将其设置为对象的名字,同时它把对象的年龄初始化为0,等待今后进一步的完善。
现在我们可以再编写一个程序来调用这个新的构造器:
public class SuzumeToSōta
{
public static void main(String[] args)
{
Person Suzume = new Person("Suzume", 17);
System.out.println("Name: " + Suzume.getName());
System.out.println("Age: " + Suzume.getAge());
Person sōta = new Person("sōta");
System.out.println("Name: " + sōta.getName());
System.out.println("Age: " + sōta.getAge());
}
}
编译运行新的代码,可以得到如下结果:
可以看到,对于不同的输入,新的构造器都能够很好地进行处理。
总而言之,构造器是Java中创建和初始化对象的重要方法。使用自定义构造器可以帮助我们更好地控制对象的创建和初始化过程。希望这篇文章可以帮助你更好地理解Java中构造器的使用,如果你有任何疑问,请随时留言。