【问题标题】:Constructor over methods in java [closed]java中方法的构造函数[关闭]
【发布时间】:2013-12-25 05:58:25
【问题描述】:

我想知道在方法上使用构造函数的确切场景,谁能给我在java中构造函数而不是方法的确切示例程序

【问题讨论】:

  • 你的问题对我来说没有多大意义。在某些情况下两者都至关重要,而在其他情况下则毫无意义。
  • 何时通过构造函数而不是 setter 方法使用字段初始化?
  • 构造函数创建对象。方法要么需要现有对象,要么(对于静态方法)独立于对象运行。但是,您的问题并没有真正的意义。
  • 一个疯狂的猜测:你说的是工厂方法吗?见stackoverflow.com/questions/9636243/…
  • 当你想构造一个对象并在这样做时传入值。

标签: java


【解决方案1】:

它们甚至不是相似的东西。

两者的用途完全不同,即使您必须注意构造函数不会返回任何内容,甚至不会返回 void :)

如果你看到basic tutorial on Constructor,提到了

构造函数声明看起来像方法声明——除了它们使用类的名称并且没有返回类型。

所以你不能选择其中之一。

如果您正在寻找/谈论设置实例成员的 variables,请选择 setter 方法而不是变量。

另一个场景是一些对象在不提供一些基本信息的情况下永远不会完成。在这种情况下,您必须创建一个constructor,就像在构造函数中传递必要信息时应该构建它一样。

考虑下面的场景,在哪里创建一个员工类,他必须有一个员工ID

public class Employee {
    String empId;

    public Employee(String empId) {
        this.empId = empId;
    }

    // Methods

    public static void main(String[] args) {
        Employee a = new Employee("green");

    }

考虑以下场景,在哪里创建一个空的员工类,稍后他可以分配员工ID

public class Employee {
    private String empId;

    public Employee() {

    }

    // Methods

    public void setEmpId(String empId) {
        this.empId = empId;
    }
    public static void main(String[] args) {
        Employee a = new Employee(); //No error
        a.setEmpId("SOMEX007");

    }
}

【讨论】:

  • 我知道这些,但我想要一个场景或一个例子
  • @Hari_krish4 已编辑。希望对您有所帮助。
猜你喜欢
  • 2018-05-06
  • 1970-01-01
  • 2013-08-26
  • 2016-09-27
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 2013-10-04
相关资源
最近更新 更多