当前位置: 首页 > 知识库问答 >
问题:

如何设置一个构造函数的值与另一个构造函数的值?[重复]

郭坚壁
2023-03-14

我目前在我的大学学习初级java课程,仍然在学习编程的基础知识。这周我们一直在学习构造函数,我被困在本周任务的后半部分,所以任何帮助都将不胜感激。

实验室的第二部分(我一直坚持的部分)的说明如下:

为类Truck编写完整的代码,如下面的类图所示。一定不要在构造函数中使用重复的代码。例如,具有2个参数的构造函数应该调用具有1个参数的构造函数来设置柱体的值。

这些是它想让我做的构造函数。

  • Truck()
  • 卡车(内部气缸)
  • 卡车(内部气缸、管柱制造商)
  • 卡车(内部气缸、管柱制造商、双负载)
  • 卡车(内缸、管柱制造商、双负载、双牵引)

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

共有2个答案

梁丘佑运
2023-03-14

只需阅读一本简单的Oracle手册:

https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.htmlstackoverflow.com仔细阅读

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;
    }
    ...
}
金坚
2023-03-14

可以使用this()调用另一个构造函数。对于eg:

Truck(A a){
    ...
}
Truck(A a,B b){
    this(a);
    ...
    ...
}
 类似资料:
  • 有了Deck对象之后,我们有必要初始化其中的Card对象。上一章的buildDeck函数稍作修改就可使用,但是更自然的方法是为Deck类再添加一个构造函数,代码如下: Deck::Deck () { apvector<Card> temp (52); cards = temp; int i = 0; for (Suit suit = CLUBS; suit <= SPADES; s

  • 我的问题是关于OOP(C)中的构造函数。当我在一个类中将默认构造函数定义为private,并且在main中将该类的一个对象初始化为default时,就会出现默认构造函数不可访问的错误。这很好。但我也在Public部分中使用默认参数构造函数,当我再次在main中初始化对象时,就会出现对函数重载的不明确调用。所以我的问题是,如果不能从main访问私有构造函数,那么编译器应该调用公共部分中的构造函数,这

  • 问题内容: 这是一个愚蠢的问题,但是自从我使用Java以来​​已经有很长的时间了……我该如何用布尔值编写构造函数,还是应该编写默认构造函数?我最近一直在使用C ++,但是我忘记了Java的很多语法。 这是我到目前为止所拥有的: 搜索时似乎找不到任何东西…如何初始化构造函数中的每个值?还是我应该 我也有几个继承自这个类的类,所以我不确定这是否有所作为。 问题答案: 布尔参数与其他任何类型一样。 因此

  • 问题内容: 我在一个Activity中有一个IntentService,当我尝试调用该服务时,它将引发此错误,我发现这很奇怪,因为如果我声明了空的构造函数。 错误: AndroidManifest.xml 活动: 问题答案: 你是一个内部阶级。如果要将其保留在内部,请将其更改为static: 您可能需要阅读不同类型的嵌套类。google的第一个链接:http : //docs.oracle.com

  • 问题内容: 是否可以从另一个(在同一类中,而不是在子类中)调用构造函数?如果是,怎么办?调用另一个构造函数的最佳方法是什么(如果有几种方法可以做到)? 问题答案: 对的,这是可能的: 要链接到特定的超类构造函数而不是同一类中的构造函数,请使用代替。注意,你只能链接到一个构造函数,它必须是构造函数主体中的第一条语句。

  • 参加以下课程: 由于Foo(std::stringbar_, intbaz_=7);是我唯一的构造函数,编译器不应该为我实现默认构造函数,对吗?我认为我可以构造这个类的唯一两种方法是: 然而,为什么这是可能的? 当唯一的公共构造函数要求其第一个参数具有值时,我不理解如何默认构造类。将默认构造函数设为私有或尝试C 11删除它,没有什么区别。这是怎么发生的 http://ideone.com/CL7I