`
Copperfield
  • 浏览: 260225 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
C407adc3-512e-3a03-a056-ce4607c3a3c0
java并发编程陷阱
浏览量:25137
社区版块
存档分类

重载构造方法

 
阅读更多

当通过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); // 编译错误,不能通过方法名来直接调用构造方法

}

 

分享到:
评论

相关推荐

    Java使用this关键字调用本类中的重载构造方法.pdf

    在类的构造方法中,`this`关键字可以用来调用同一类中的其他重载构造方法,以便于代码的复用和简化。这个特性使得开发者能够更高效地管理对象的初始化过程。 首先,我们要理解构造方法的作用。构造方法是Java类中...

    实验四 类的构造方法与Java流程控制语句

    重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。程序源代码如下。 2、使用选择语句 程序功能:使用if...else 语句构造多分支,判断某一年是否为闰年。...

    详解Java使用super和this来重载构造方法

    下面我们将深入探讨 `super` 和 `this` 的概念,并通过给定的实例代码来解释它们在重载构造方法中的应用。 首先,`this` 关键字在当前类的范围内引用当前对象。它可以用来访问当前类的成员变量或方法,避免了与局部...

    Java 构造方法

    这称为重载构造方法,即在同一个类中定义多个构造方法,它们的方法名相同,但参数列表不同。 在实际编程中,我们通常会看到以下几种情况: - **默认构造器**:如果程序员没有定义任何构造方法,Java编译器会自动...

    构造方法11_2.zip

    只要它们的参数列表不同(数量、类型或顺序不同),就可以重载构造方法。 - 这允许我们根据需要以不同的方式创建和初始化对象。 5. **构造方法的调用**: - 构造方法的调用通常发生在`new`关键字后面,通过类名和...

    类和对象、构造方法总结

    它可能详细介绍了如何设计和使用构造方法,包括参数化的构造方法、重载构造方法、以及构造方法与this关键字和super关键字的配合使用。 总之,类和对象是面向对象编程的基础,它们帮助我们将复杂的问题抽象为独立的...

    第十章 C#继承 派生类 派生类的构造方法.docx

    C#继承和派生类的构造方法 在C#中,继承是面向对象编程的基本概念之一。继承是指一个类可以继承另一个类的成员字段和函数,从而实现代码的复用和扩展。 在C#中,我们可以通过两种方式实现继承,即实现继承和接口...

    java代码-构造方法重载

    2. **提供多种初始化方式**:通过重载构造方法,我们可以为用户提供多种初始化对象的方式。 ### 构造方法重载的规则 1. **方法名相同**:所有重载的构造方法都必须具有相同的名称,即与类名相同。 2. **参数列表...

    Java面向对象程序设计方案练习题(1).doc

    需要一个构造方法简化初始化,以及重载构造方法提供不同初始化方式。同时,添加`check`方法检查属性是否符合要求。 【练习题08】:此题涉及构造方法的重载,创建一个基类`Vehicles`,包含品牌`brand`和颜色`color`...

    构造方法JAVA构造方法

    Java构造方法是面向对象编程中的一个关键概念,用于初始化新创建的对象。在Java类中,构造方法是一个特殊的方法,它的名字...在实践中,要灵活运用构造方法的重载、`this`关键字以及与继承的关系,以满足各种编程需求。

    类和对象,this关键字和构造方法

    6. **重载构造方法**: - 可以定义多个构造方法来实现不同的初始化逻辑。 - 例如: ```java public Car() { this("Black", "Audi"); } public Car(String color, String brand) { this.color = color; ...

    java 使用构造方法的重载计算课程的GPA值

    构造方法的重载(Overloading)是面向对象编程的一个重要特性,允许我们在同一个类中定义多个同名但参数列表不同的构造方法。这样可以根据传入的不同参数来执行不同的初始化逻辑。本话题将深入探讨如何使用构造方法...

    06.【类与对象、封装、构造方法】.zip

    通过重载构造方法,我们可以在不同的情况下创建具有不同初始状态的对象。 举例来说,如果我们有一个"Car"类,可以定义多个构造方法,一个无参数的构造器创建基本的汽车,一个带有颜色参数的构造器创建特定颜色的...

    JAVA的重载和覆盖(论文)

    构造方法重载是重载的一种特殊情况,指的是在一个类中可以有多个构造方法,每个构造方法可以接受不同类型的参数,这样就可以根据不同的需求初始化对象。构造方法重载可以提供更加灵活的实例化机制,满足不同的初始化...

    java 构造方法的资源

    总结,Java中的构造方法是创建和初始化对象的关键组成部分,它们使得我们可以根据不同的场景灵活地初始化对象,并通过构造方法重载来提供多种初始化方式。理解和掌握构造方法的使用对于编写高质量的Java代码至关重要...

    Java面向对象程序设计方案练习题.doc

    【练习题7】:创建`WuMingFen`类,包含构造方法和重载构造方法,以及检查方法。代码如下: ```java public class WuMingFen { private String theMa; private int quantity; private boolean likeSoup; public...

    java面向对象编程练习

    写一个构造方法,以便于简化初始化过程,并重载构造方法,使得初始化过程可以多样化。 【练习题】08.构造方法的重载:交通工具类 交通工具类是一个简单的 Java 类,包含商标和颜色两个成员属性,并有行驶和显示信息...

    java 基础问题集

    重载构造方法意味着在同一个类中可以有多个构造方法,它们的参数列表不同(参数个数、类型或顺序)。这样可以根据不同的需求创建对象。例如,一个Employee类可以有不同参数的构造方法,分别处理姓名和年龄已知或未知...

    学习JavaEE第十一天练习代码Day11.rar

    这包括定义类,重载构造方法,并使用`this`关键字来演示对象的初始化过程。这样的练习有助于加深对面向对象编程的理解,同时也为更复杂的JavaEE应用程序打下坚实的基础。通过不断地练习和实践,你可以更好地掌握这些...

Global site tag (gtag.js) - Google Analytics