当通过new语句创建一个对象时,在不同的条件下,对象可能会有不同的初始化行为。
。例程11-2的Employee类的构造方法有3种重载形式。在一个类的多个构造方法中,可能会出现一些重复操
作。为了提高代码的可重用性,Java语言允许在一个构造方法中,用this语句来调用另一个构造方法。
例程11-2 Employee.java
public class Employee {
private String name;
private int age;
/** 当雇员的姓名和年龄都已知,就调用此构造方法 */
public Employee(String name, int age) {
this.name = name;
this.age=age;
}
/** 当雇员的姓名已知而年龄未知,就调用此构造方法 */
public Employee(String name) {
this(name, -1);
}
/** 当雇员的姓名和年龄都未知,就调用此构造方法 */
public Employee() {
this( "
无名氏" );
}
public void setName(String name){this.name=name; }
public String getName(){return name; }
public void setAge(int age){this.age=age;}
public int getAge(){return age;}
}
以下程序分别通过3个构造方法创建了3个Employee对象。
Employee zhangsan=new Employee("张三",25);
Employee lisi=new Employee("李四");
Employee someone=new Employee();
在Employee(String
name)构造方法中,this(name,-1)语句用于调用Employee(String name,int
age)构造方法。在Employee()构造方法中,this("无名氏")语句用于调用Employee(String name)构造方法。
用this语句来调用其他构造方法时,必须遵守以下语法规则。
假如在一个构造方法中使用了this语句,那么它必须作为构造方法的第一条语句
。以下构造方法是非法的:
public Employee(){
String name="无名氏";
this(name); //编译错误,this语句必须作为第一条语句
}
只能在一个构造方法中用this语句来调用类的其他构造方法,而不能在实例方法中用this语句来调用类的其他构造方法。
只能用this语句来调用其他构造方法,而不能通过方法名来直接调用构造方法。以下对构造方法的调用方式是非法的:
public Employee() {
String name= "无名氏";
Employee(name); //
编译错误,不能通过方法名来直接调用构造方法
}
分享到:
相关推荐
在类的构造方法中,`this`关键字可以用来调用同一类中的其他重载构造方法,以便于代码的复用和简化。这个特性使得开发者能够更高效地管理对象的初始化过程。 首先,我们要理解构造方法的作用。构造方法是Java类中...
重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。程序源代码如下。 2、使用选择语句 程序功能:使用if...else 语句构造多分支,判断某一年是否为闰年。...
下面我们将深入探讨 `super` 和 `this` 的概念,并通过给定的实例代码来解释它们在重载构造方法中的应用。 首先,`this` 关键字在当前类的范围内引用当前对象。它可以用来访问当前类的成员变量或方法,避免了与局部...
这称为重载构造方法,即在同一个类中定义多个构造方法,它们的方法名相同,但参数列表不同。 在实际编程中,我们通常会看到以下几种情况: - **默认构造器**:如果程序员没有定义任何构造方法,Java编译器会自动...
只要它们的参数列表不同(数量、类型或顺序不同),就可以重载构造方法。 - 这允许我们根据需要以不同的方式创建和初始化对象。 5. **构造方法的调用**: - 构造方法的调用通常发生在`new`关键字后面,通过类名和...
它可能详细介绍了如何设计和使用构造方法,包括参数化的构造方法、重载构造方法、以及构造方法与this关键字和super关键字的配合使用。 总之,类和对象是面向对象编程的基础,它们帮助我们将复杂的问题抽象为独立的...
C#继承和派生类的构造方法 在C#中,继承是面向对象编程的基本概念之一。继承是指一个类可以继承另一个类的成员字段和函数,从而实现代码的复用和扩展。 在C#中,我们可以通过两种方式实现继承,即实现继承和接口...
2. **提供多种初始化方式**:通过重载构造方法,我们可以为用户提供多种初始化对象的方式。 ### 构造方法重载的规则 1. **方法名相同**:所有重载的构造方法都必须具有相同的名称,即与类名相同。 2. **参数列表...
需要一个构造方法简化初始化,以及重载构造方法提供不同初始化方式。同时,添加`check`方法检查属性是否符合要求。 【练习题08】:此题涉及构造方法的重载,创建一个基类`Vehicles`,包含品牌`brand`和颜色`color`...
Java构造方法是面向对象编程中的一个关键概念,用于初始化新创建的对象。在Java类中,构造方法是一个特殊的方法,它的名字...在实践中,要灵活运用构造方法的重载、`this`关键字以及与继承的关系,以满足各种编程需求。
6. **重载构造方法**: - 可以定义多个构造方法来实现不同的初始化逻辑。 - 例如: ```java public Car() { this("Black", "Audi"); } public Car(String color, String brand) { this.color = color; ...
构造方法的重载(Overloading)是面向对象编程的一个重要特性,允许我们在同一个类中定义多个同名但参数列表不同的构造方法。这样可以根据传入的不同参数来执行不同的初始化逻辑。本话题将深入探讨如何使用构造方法...
通过重载构造方法,我们可以在不同的情况下创建具有不同初始状态的对象。 举例来说,如果我们有一个"Car"类,可以定义多个构造方法,一个无参数的构造器创建基本的汽车,一个带有颜色参数的构造器创建特定颜色的...
构造方法重载是重载的一种特殊情况,指的是在一个类中可以有多个构造方法,每个构造方法可以接受不同类型的参数,这样就可以根据不同的需求初始化对象。构造方法重载可以提供更加灵活的实例化机制,满足不同的初始化...
总结,Java中的构造方法是创建和初始化对象的关键组成部分,它们使得我们可以根据不同的场景灵活地初始化对象,并通过构造方法重载来提供多种初始化方式。理解和掌握构造方法的使用对于编写高质量的Java代码至关重要...
【练习题7】:创建`WuMingFen`类,包含构造方法和重载构造方法,以及检查方法。代码如下: ```java public class WuMingFen { private String theMa; private int quantity; private boolean likeSoup; public...
写一个构造方法,以便于简化初始化过程,并重载构造方法,使得初始化过程可以多样化。 【练习题】08.构造方法的重载:交通工具类 交通工具类是一个简单的 Java 类,包含商标和颜色两个成员属性,并有行驶和显示信息...
重载构造方法意味着在同一个类中可以有多个构造方法,它们的参数列表不同(参数个数、类型或顺序)。这样可以根据不同的需求创建对象。例如,一个Employee类可以有不同参数的构造方法,分别处理姓名和年龄已知或未知...
这包括定义类,重载构造方法,并使用`this`关键字来演示对象的初始化过程。这样的练习有助于加深对面向对象编程的理解,同时也为更复杂的JavaEE应用程序打下坚实的基础。通过不断地练习和实践,你可以更好地掌握这些...