Constructor (object-oriented programming): Difference between revisions

Content deleted Content added
Undid revision 1213477586 by 49.248.21.30 (talk)
Line 4:
In [[class-based programming|class-based]], [[object-oriented programming]], a '''constructor''' (abbreviation: '''ctor''') is a special type of [[Function (computer programming)|function]] called to [[object creation|create an object]]. It prepares the new object for use, often accepting [[Parameter (computer programming)|arguments]] that the constructor uses to set required [[member variable]]s.
 
A constructor resembles an [[methodMethod (computer scienceprogramming)|instance method]], but it differs from a method in that it has no explicit [[return type]], it is not implicitly [[inheritance (object-oriented programming)|inherited]] and it usually has different rules for scope modifiers. Constructors often have the same name as the declaring [[class (computer science)|class]]. They have the task of [[initialization (computing)|initializing]] the object's [[data member]]s and of establishing the [[Class invariant|invariant of the class]], failing if the invariant is invalid. A properly written constructor leaves the resulting [[object (computer science)|object]] in a ''valid'' state. [[Immutable object]]s must be initialized in a constructor.
 
Most languages allow [[method overloading|overloading]] the constructor in that there can be more than one constructor for a class, with differing parameters. Some languages take consideration of some special types of constructors. Constructors, which concretely use a single class to create objects and return a new instance of the class, are abstracted by [[Factory (object-oriented programming)|factories]], which also create objects but can do so in various ways, using multiple classes or different allocation schemes such as an [[object pool]].