In some object-orientedprogramming languages, a property is a special sort of class member, intermediate between a field (or data member) and a method. You read and write a property just as you read and write a field, but this is (usually) translated to get and set method calls. The field-like syntax is easier to read and write than lots of method calls, yet the interposition of method calls allows for data validation, active updating (as of GUI visuals), and/or read-only 'fields'. That is, properties are intermediate between member code (methods) and member data (instance variables) of the class, and properties provide a higher level of encapsulation than public fields.
Support in languages
Programming languages that support properties include Delphi/Free Pascal, Visual Basic, C#, D, eC, Objective C 2.0, Python and Vala. Some object-oriented languages, such as C++ and Java, don't support properties, and require the programmer to define a pair of "accessor" and "mutator" methods instead.
In most languages, properties are implemented as a pair of accessor/mutator methods, but accessed using the same syntax as for public fields. Omitting a method from the pair yields a "read-only" or "write-only" property, the latter being rather uncommon.
In some languages with no built-in support for properties, a similar construct can be implemented as a single method that either returns or changes the underlying data, depending on the context of its invocation. Such techniques are used e.g. in Perl.
Example syntax
Delphi/Free Pascal
Visual Basic 6
Visual Basic
C#
D
Python
Properties only work correctly for new-style classes (classes which has object as an ancestor), and are only available in Python 2.2 and newer (see [http://www.python.org/download/releases/2.2/descrintro/#property the relevant secion of the tutorial Unifying types and classes in Python 2.2] ).
PHP
eC
class Pen { Color color; publicproperty Color color { get { return color; } set { color = value; } } } // Example Usage Pen pen { red }; Pen pen { color = red }; pen.color = ~pen.color; pen.color += 10; pen.color.r = 255; pen.color = 0xFF0000; pen.color = { 255, 0, 0 }; pen.color = ColorHSV { 0, 100, 100 }; pen.color = ColorLab { 53, 79, 66 }; pen.color = ColorCMYK { 0, 100, 100, 0 };
Property (disambiguation) — In law and political theory, property refers to an ownership interest in land or other resources.A property of an object is some intrinsic or extrinsic quality of that object, where the nature of the object in question will depend on the field,… … Wikipedia
Programming Complexity — Programming Complexity, which is often also referred to as Software Complexity is a term that encompasses numerous properties of a piece of software, all of which affect internal interactions. According to several commentators, including… … Wikipedia
Property list — Infobox file format name = Property List extension = .plist mime = owner = Apple Computer and GNUstep, formerly NeXT creatorcode = genre = Serialization of dictionary objects. containerfor = containedby = extendedfrom = extendedto = In the Mac OS … Wikipedia
Property List — Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt Property List Dateiendung: .plist MIME Type: application/x plist … Deutsch Wikipedia
Comparison of programming languages — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations … Wikipedia
Comparison of programming languages (mapping) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations … Wikipedia
Constructor (object-oriented programming) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations … Wikipedia
Object-oriented programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing … Wikipedia
Oxygene (programming language) — Oxygene Developer RemObjects Software Stable release 3.0.21 (August 29, 2009; 2 years ago (2009 08 29)) Influenced by Object Pas … Wikipedia