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

如何简化类似的构造函数?

麹高远
2023-03-14

我如何简化这一点:

有必要有两个不同的构造函数,只有一点区别吗?

有没有一种方法可以简单地使用其中一种?

public class MyCostructor {

    public MyCostructor(int w, int h, String name) {
         this.w = w;
         this.h = h;
         this.name = name;
    }
    
    public MyCostructor(int w, int h) {
         this.w = w;
         this.h = h;
    }
}

共有2个答案

孔运珧
2023-03-14

在构造函数中使用this()

public MyCostructor(int w, int h, String name) {
    this(w, h);
    this.name = name;
}

public MyCostructor(int w, int h) {
    this.w = w;
    this.h = h;
}
国晟睿
2023-03-14

是的,您可以使用关键字this调用另一个构造函数,并且您尊重DRY原则(不要重复自己)。

public MyCostructor(int w, int h){ 
   this(w,h,null);
}

您可以在这里阅读更多内容(将此部分与构造函数一起使用)

 类似资料:
  • 我有这个问题,这让我发疯,我有这个课程 在我的主类中,我实例化了前一个类,并且可以毫无问题地访问属性 但是当它编译它返回给我一个错误: 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。壁虎。驱动系统属性;有关更多信息,请参阅https://github.com/mozilla/geckodriver.最

  • 我想有一个java中的构造函数参数化一个类来运行这个类,类似于这个 其中classToRun可能的类没有共同的祖先,但都有方法someStaticMethod。 但也存在一些问题,比如内部类不能有静态方法,类不能被转换为类,等等。 有一些用类方法参数化的解决方案,如 如何在Java中传递类作为参数? 在java中将类作为参数传递给方法 但对建造者来说不是。 这样做的正确解决方案是什么?

  • 在Java中,您可以这样做: 在飞镖中,我试过:

  • 问题内容: 我不明白原始是如何转换为char数组的。如果我尝试使用其他代码,则会引发编译错误。 问题答案: 有两个属性: 因为您位于的构造函数中,所以您有权访问其私有字段和。 您无法从String类的外部访问这些字段,因此,如果尝试执行此操作,将抛出编译错误。

  • 生成类对象时,其成员可以用类的构造函数初始化。构造函数是与类同名的成员函数。程序员提供的构造函数在每次生成类对象(实例化)时自动调用。构造函数可以重载.提供初始化类对象的不同方法。数据成员应在类的构造函数中初始化或在生成对象之后设置其数值。 常见编程错误 6.7 类的数据成员只能在类定义中初始化。 常见编程错误 6.8 试图声明构造函数的返回类型和返回植是个语法错误。 编程技巧 6.5 适当时候(

  • 我想重构这两个方法,除了“maxResult ()”之外,它们实际上是相同的,这两个方法指的是两个不同的 get,一个返回我单个用户,另一个返回列表。我如何简化这两种方法(总是如果有意义的话)这是两种方法: 第一种方法: 第二种方法: