我可以说构造函数是一种方法吗?

Tom*_*ito 12 oop methods constructor terminology

我不知道如果我可以说,一个构造器是一种特殊情况下的方法

bma*_*ies 14

你可以说什么.是否有人会不同意你的观点取决于具体情况.一些语言社区和标准以这种方式定义事物.

更精确的是,它取决于你的方法是什么意思.例如,在C++中,分析创建过程的一种方法是说它包含对操作符new(可能只是放置)的调用,然后是对构造函数方法的调用.从实现的角度来看,构造函数像方法一样查看,遍历和嘎嘎叫.在某些编译器中,您甚至可以显式调用一个.

从更理论的角度来看,有人可能会声称构造者是一些独特的物种.但是,没有单一的,真实的,特权的方法,构造函数或紫色独角兽的概念模型.

天哪,这都是主观的.

  • "你可以说什么." 但要记住"你所说的任何话都可以并将在法庭上对你使用." =) (6认同)

Mar*_*ade 12

可以这么说,就像你可以说,一个是一个特殊的情况下的动物,然而在大多数情况下提的动物意味着非人类动物和提方法意味着非构造方法.


Ond*_*cny 9

从技术上讲,构造函数通常是一种方法.它是否真的在很大程度上取决于特定的环境.例如,在.NET中,构造函数是在创建对象后实际调用的方法.但是,也可以创建一个对象,而不需要在之后调用构造函数.

更新:关于.NET,或者更准确的公共语言基础结构,ECMA 335,第8.9.6.6节构造函数声明:

通过构造函数创建对象类型的新值.构造函数应该是实例方法,通过特殊形式的方法契约定义,它将方法契约定义为特定对象类型的构造函数.

  • @ Woor4Moo我不是在争论void是一种类型.但是你显然没有明白这一点,至少在.NET世界的情况下,因为在.NET中,构造函数**是**方法**按定义**.请参阅上面的更新答案. (2认同)