【问题标题】:Constructors with default values of parameters [duplicate]具有参数默认值的构造函数[重复]
【发布时间】:2016-09-05 03:10:44
【问题描述】:

java 是否支持带有默认值参数的构造函数 例如

public Shape(int v=1,int e =2){vertices =v;edges = e; }

【问题讨论】:

  • 当你尝试时,你发现了什么?
  • 不,不支持。但是您可以根据需要创建任意数量的构造函数,具有不同的参数编号和类型,例如no-arg public Shape() 将使用默认值调用 this(int, int)。如果参数数量不同,您也可以创建一个可变参数构造函数。
  • 下一次:做一些前期研究。尤其是当您刚接触一门语言时:考虑一下所有合理的“初学者”问题中的 99,999% 都在这里被问过……可能无数次。无需添加另一个重复项。
  • 到目前为止已经 7 分钟了,没有人找到合理的副本。所讨论的问题不适用于解决方案完全不同的构造函数。不要对新用户太苛刻。问题是这个网站的生命线,我认为这个问题是合理的。

标签: java constructor


【解决方案1】:

不,Java 不支持参数的默认值。你可以重载构造函数:

public Shape(int v,int e) {vertices =v; edges = e; }
public Shape() { this(1, 2); }

【讨论】:

    【解决方案2】:

    不,它没有。 Java 不支持 any 函数中的默认参数;包括构造函数。

    可以做的是定义public Shape(int v, int e)和一个默认构造函数

    public Shape()
    {
        this(1, 2);
    }
    

    注意这里将构造委托到两个参数的构造函数的特殊语法。

    【讨论】:

      猜你喜欢
      • 2012-04-24
      • 2014-05-19
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多