如何将一个构造函数的值设置为另一个构造函数的值? [复制]

Posted

技术标签:

【中文标题】如何将一个构造函数的值设置为另一个构造函数的值? [复制]【英文标题】:how to set the values of one constructor with the values of another? [duplicate] 【发布时间】:2015-12-27 07:32:20 【问题描述】:

我目前正在我的大学学习 Java 初学者课程,并且仍在学习编程的基础知识。本周我们一直在学习构造函数,而我本周任务的后半部分被困住了,因此非常感谢任何帮助。

实验室第二部分(我坚持的部分)的方向如下:

编写类中给出的卡车类的完整代码 下图。确保不要在构造函数中使用重复的代码。 例如,具有 2 个参数的构造函数应该调用一个 用 1 个参数设置圆柱体的值。

这些是它希望我制作的构造函数。

Truck() Truck(int cylinders) Truck(int cylinders, String manufacturer) Truck(int cylinders, String manufacturer, double load) Truck(int cylinders, String manufacturer, double load, double tow)

任何关于如何做到这一点的解释/示例都会令人惊叹

【问题讨论】:

我打算将其作为How to avoid constructor code redundancy in Java的副本关闭 【参考方案1】:

您可以使用this() 调用另一个构造函数。 例如:

Truck(A a)
    ...

Truck(A a,B b)
    this(a);
    ...
    ...

【讨论】:

或者谷歌Constructor overloading and constructor chaining in Java【参考方案2】:

只需阅读简单的 Oracle 手册:

https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html 要么 read ***.com more careful

public class Rectangle 
    private int x, y;
    private int width, height;

    public Rectangle() 
        this(0, 0, 1, 1);
    
    public Rectangle(int width, int height) 
        this(0, 0, width, height);
    
    public Rectangle(int x, int y, int width, int height) 
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    
    ...

【讨论】:

太好了,这对我帮助很大!我知道我应该用 this() 做点什么,但我不确定是什么,我需要一个完整的例子。 @skulltula,祝你有美好的一天

以上是关于如何将一个构造函数的值设置为另一个构造函数的值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在构造函数 C++ 中使用静态变量?

如何正确访问通过从标准输入引用构造函数传递的参数的值?

复制构造函数的运用

c++,类的对象作为形参时一定会调用复制构造函数吗?

C++ 错误:没有用于初始化的匹配构造函数

C++ 错误:没有用于初始化的匹配构造函数