当前位置: 首页 > 面试题库 >

这些是什么类型的Java构造函数?构造函数链接?

郑博
2023-03-14
问题内容

这些来自github上的spring amqp示例,位于https://html" target="_blank">github.com/SpringSource/spring-amqp-
samples.git
这些是
什么类型的Java构造函数?它们是吸气剂和吸气剂的捷径吗?

public class Quote {

    public Quote() {
        this(null, null);
    }

    public Quote(Stock stock, String price) {
        this(stock, price, new Date().getTime());
    }

与此相反

public class Bicycle {

public Bicycle(int startCadence, int startSpeed, int startGear) {
    gear = startGear;
    cadence = startCadence;
    speed = startSpeed;
}

问题答案:

这些构造函数被重载以使用调用另一个构造函数this(...)。第一个无参数构造函数使用空参数调用第二个。第二呼叫的第三构造(未示出),其必须采取StockStringlong。这种模式称为
构造函数链接 ,通常用于提供多种方法来实例化对象而无需重复代码。参数较少的构造函数使用默认值(例如with)填充缺少的参数new Date().getTime(),否则仅传递nulls。

请注意, 必须
至少有一个不调用的构造函数,this(...)而是提供对的调用,并在super(...)其后进行构造函数实现。如果在构造函数的第一行中均未指定this(...)super(...)super()则暗示对no-
arg的调用。

因此,假设类中没有更多的构造函数链接Quote,则第三个构造函数可能如下所示:

public Quote(Stock stock, String price, long timeInMillis) {
    //implied call to super() - the default constructor of the Object class

    //constructor implementation
    this.stock = stock;
    this.price = price;
    this.timeInMillis = timeInMillis;
}

还要注意,this(...)仍然可以在实现之后跟随to的调用,尽管这与链接模式有所不同:

public Quote(Stock stock, String price) {
    this(stock, price, new Date().getTime());

    anotherField = extraCalculation(stock);
}


 类似资料:
  • 本文向大家介绍请解释Java中的概念,什么是构造函数?什么是构造函数重载?什么是复制构造函数?相关面试题,主要包含被问及请解释Java中的概念,什么是构造函数?什么是构造函数重载?什么是复制构造函数?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JAVA构造函数 当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,Java编译器会为这个类创建一

  • 问题内容: 所以我正在学习Java。我有一个月的时间,我刚刚了解了构造函数。但是我看不到创建一个的全部目的。为什么我什么时候要使用?我知道它没有主方法,您可以从主类中调用构造函数。任何人都可以启发我这个话题,这对我有很大帮助。 问题答案: 构造函数是用来初始化/设置类实例的对象。 如果您有一个对象需要一些处理才能使用(例如,初始化成员),则应在构造函数中执行此操作。 理想情况下,您永远不应拥有“部

  • 我正在尝试实现一个链表。 列表有私有变量*头,*尾,计数。 我理解数据结构中的逻辑,但不可否认,我是C语言的新手,所以我觉得我可能没有正确地使用构造函数。 *head和*tail是列表节点指针。然后,列表节点具有指向上一个和下一个(双链接列表)的指针。 以下是我尝试过的: 我的程序可以编译,但当它试图使用此构造函数创建新列表时崩溃。有什么建议吗?

  • 本文向大家介绍Java构造函数,包括了Java构造函数的使用技巧和注意事项,需要的朋友参考一下 构造函数与方法相似,但在以下方面有所不同。 它们没有任何返回类型。 构造函数的名称与类的名称相同。 每个类都有一个构造函数。如果我们未为类明确编写构造函数,则Java编译器将为该类建立默认构造函数。 每次创建一个新对象时,将至少调用一个构造函数。 一个类可以具有多个构造函数。 示例 输出结果

  • C++ 类 & 对象 类的构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。 构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。 下面的实例有助于更好地理解构造函数的概念:#include <iostream> using namespace std; class Line { public: v

  • 问题内容: 编译该程序时,出现错误- 错误-找不到构造函数Person()。为什么定义Person()是必要的? 问题答案: 创建时,您要同时创建一个。为了确保构造正确,编译器在构造函数中添加了一个隐式调用: 由于没有无参数构造函数,因此失败。 您可以通过以下任一方式解决它 添加对super的显式调用,如下所示: } 或通过将no-arg构造函数添加到: } 通常,编译器还会隐式添加无参数构造函数